Français
Forum

AutoItX3.dll - PixelSearch Funktionsaufruf

 
- page 1 -



Christian
Schneider
Salut,

je stehe malheureusement la fois wieder sur Kriegsfuß avec einer .dll. Diesmal ist es qui AutoItX3.dll.
je voudrais qui Funktion AU3_PixelSearch appel.
KompilierenMarqueSéparation
CLS
Declare autodll&
autodll&=UseDll(AutoItX3.dll)
importFunc(autodll&,AU3_PixelSearch,PixelSearch)
Pixelsearch(???????????)
FreeDLL autodll&
Waitk

comment devrait maintenant qui entsprechende Aufruf air? qui Doku sagt:

AU3_API void WINAPI AU3_PixelSearch(long nLeft, long nTop, long nRight, long nBottom, long nCol, /*default 0*/long nVar, /*default 1*/long nStep, LPPOINT pPointResult);


je viens simple pas plus. Dll et Aider hängen am Beitrag à.

Salut Christian

186 kB
Hochgeladen:23.02.2009
Downloadcounter223
Download
306 kB
Hochgeladen:23.02.2009
Downloadcounter173
Download
 
XProfan 11| Vista(64) SP2
23.02.2009  
 



 
- page 3 -


qui Doku qui je en supplément fand beinhaltete lediglich den bereits dessus einkopierten Aufruf avec Parametern - habe rien so droite trouvé et deswegen aussi qui Solution avec reinem XProfan erstellt. (quelle deutlich plus rapide comme qui DLL travailler sollte/pourrait.)
 
25.02.2009  
 




Thomas
Freier
chez mir finissez qui pixelSearch.exe sich juste beim Starten.

10 kB
Hochgeladen:25.02.2009
Downloadcounter110
Download
 
Gruß Thomas
Windows XP SP2, XProfan X2
25.02.2009  
 



un SS.BMP liegt im Pfad?
 
25.02.2009  
 




Thomas
Freier
non, J'avais oublié. eh bien ca va et droite zügig (17.5MB). Würde cependant den ersten weissen Pixel à anderer Stelle vermuten, z.B.: chez den Sonnenschirmen. Verkleinertes Beispiel. Fundort ist identique x=609, y=398.

1.203 kB
Hochgeladen:25.02.2009
Downloadcounter166
Download
 
Gruß Thomas
Windows XP SP2, XProfan X2
25.02.2009  
 




Christian
Schneider
RGH
Salut,

sur quoi beziehen sich qui Koordinaten, dans denen gesucht wird? Beziehen qui sich sur den Desktop, irgenein la fenêtre, irgenmdeine Bitmap, ou bien quoi entier d'autre?


je vermute la fois sur den Desktop. Zwar gibt es dans AutoIt selbst chez qui Funktion une optionalen paramètre pour un Handle, cependant steht cet dans qui .dll scheinbar pas zur Disposition (zumindest pas dans qui Funktion selbst / Hinweise sur une Einstellmöglichkeit per anderer Funktion konnte je également pas trouver).

RGH
là qui DLL, comment dessus geschrieben steht, offensichtlich initialisiert volonté doit, muss vous naturellement aussi zuallererst avec UseDLL dans den grenier geladen volonté. Ist vous ca pas, serait vous zwar beim Aufruf qui Init-Funktion dans den den grenier geladen, qui Funktion fonctionnement, mais anschließend tout de suite wieder entladen werde. ensuite wäre qui initialisation pour qui Katz!


je muss gestehen cela était mir bisher pas bewusst. Habe déjà un peu sur cette la base herumprobiert, cependant avec dem gleichen Ergebnis comment bisher.

RGH
je serait vermuten, dass avant dem Aufruf de AU3_PixelSearch seulement autre Aufrufe avoir lieu doit, avec cela quoi voilà, dans dem gesucht volonté peux.


comment dessus geschrieben konnte je puis keinen Hinweis trouver. Zwar gibt es quelques Optionen qui on per AutoItSetOption mettons pourrait, cependant rien quoi wirklich passt. Aussi ist toujours un Default-Wert vorhanden.
 
XProfan 11| Vista(64) SP2
25.02.2009  
 



je hatte oublier qc une Code  [...]  trop posten.
 
03.03.2009  
 




Christian
Schneider
merci. juste la fois einlesen.
 
XProfan 11| Vista(64) SP2
04.03.2009  
 




Christian
Schneider
qui Code fonctionne chez mir im Originalzustand sans Probleme.

eh bien ca va mir tout autor plusieurs Farbvorkommen pour trouver (si vorhanden). mais c'est pas cela eigentliche Problem. peux mir quelqu'un begreiflich faire pourquoi qui folgende 1. Code fonctionne et qui 2. pas?

1:
KompilierenMarqueSéparation
CLS
var HPIC&=CREATE(hNewPic,1024,1024,0)
var X&=RND(1024)
var Y&=RND(1024)
var COL&=$00FF00
STARTPAINT HPIC&
SETPIXEL X&,Y&,COL&
ENDPAINT
Declare SOMEPOS&
SOMEPOS&=HPIC.PIXELSEARCH(HPIC&,COL&,1024,1024)
SOMEPOS&=HPIC.PIXELSEARCH(HPIC&,COL&,1024,1024)
PRINT X&,Y&
PRINT HIWORD(SOMEPOS&),LOWORD(SOMEPOS&)
WAITINPUT
END

proc HPIC.BGR2STRING

    PARAMETERS H&,_WIDTH&,_HEIGHT&
    var SZ&=( (_WIDTH&*328-1) | 3 +1) * ABS(_HEIGHT&)
    DECLARE MEM#
    DIM MEM#,BITMAPINFOHEADER

    WITH MEM#

        .BISIZE&=SIZEOF(MEM#)
        .BIWIDTH&=_WIDTH&
        .BIHEIGHT&=_HEIGHT&
        .BIPLANES%=1
        .BIBITCOUNT%=32
        .BICOMPRESSION&=0
        .BISIZEIMAGE&=SZ&

    ENDWITH

    DECLARE DATA#
    DIM DATA#,SZ&
    var RET$=

    IF ~GetDIBits(%HDC,H&,0,_HEIGHT&,DATA#,MEM#,0)

        RET$=CHAR$(DATA#,0,SZ&)

    ENDIF

    DISPOSE DATA#
    DISPOSE MEM#
    RETURN +RET$

endproc

proc HPIC.PIXELSEARCH

    PARAMETERS H&,COLORTOFIND&,_WIDTH&,_HEIGHT&
    var RAWDATA$=HPIC.BGR2STRING(H&,_WIDTH&,_HEIGHT&)
    var _FND&=HPIC.FINDCOLORINRAWDATA(COLORTOFIND&,RAWDATA$)

    IF _FND&=-1

        RETURN _FND&

    ENDIF

    var X&=_FND& MOD _WIDTH&
    var Y&=0

    IF _FND& > 0

        Y&=_FND&\_WIDTH&

    ENDIF

    RETURN X&*65536+(_HEIGHT&-Y&-1)

endproc

proc HPIC.FINDCOLORINRAWDATA

    PARAMETERS COL&,DATA$
    var C&=1
    var P&=0
    var SCOL$=CHR$(GETBVALUE(COL&))+CHR$(GETGVALUE(COL&))+CHR$(GETRVALUE(COL&))

    WHILE 1

        P&=INSTR(SCOL$,DATA$,C&)

        IFNOT P&

            BREAK

        ENDIF

        IFNOT (P&-1) MOD 4

            RETURN P&*0.25

        ENDIF

        C&=P&+1

    ENDWHILE

    RETURN -span class=s2>1

endproc


2:
KompilierenMarqueSéparation
 $H windows.ph
STRUCT BITMAPINFOHEADER=BISIZE&,BIWIDTH&,BIHEIGHT&,BIPLANES%,BIBITCOUNT%,BICOMPRESSION&,BISIZEIMAGE&,BIXPELSPERMETER&,BIYPELSPERMETER&,BICLRUSED&,BICLRIMPORTANT&
RANDOMIZE
CLS
var HPIC&=CREATE(hNewPic,1024,1024,0)
var X&=RND(1024)
var Y&=RND(1024)
var COL&=$00FF00
STARTPAINT HPIC&
SETPIXEL X&,Y&,COL&
ENDPAINT
Déclarer SOMEPOS&

Whileloop 2

    SOMEPOS&=HPIC.PIXELSEARCH(HPIC&,COL&,1024,1024)

Endwhile

PRINT X&,Y&
PRINT HIWORD(SOMEPOS&),LOWORD(SOMEPOS&)
WAITINPUT
FIN

proc HPIC.BGR2STRING

    PARAMETERS H&,_WIDTH&,_HEIGHT&
    var SZ&=( (_WIDTH&*328-1) | 3 +1) * ABS(_HEIGHT&)
    DECLARE MEM#
    DIM MEM#,BITMAPINFOHEADER

    WITH MEM#

        .BISIZE&=SIZEOF(MEM#)
        .BIWIDTH&=_WIDTH&
        .BIHEIGHT&=_HEIGHT&
        .BIPLANES%=1
        .BIBITCOUNT%=32
        .BICOMPRESSION&=0
        .BISIZEIMAGE&=SZ&

    ENDWITH

    DECLARE DATA#
    DIM DATA#,SZ&
    var RET$=

    IF ~GetDIBits(%HDC,H&,0,_HEIGHT&,DATA#,MEM#,0)

        RET$=CHAR$(DATA#,0,SZ&)

    ENDIF

    DISPOSE DATA#
    DISPOSE MEM#
    RETOUR +RET$

endproc

proc HPIC.PIXELSEARCH

    PARAMETERS H&,COLORTOFIND&,_WIDTH&,_HEIGHT&
    var RAWDATA$=HPIC.BGR2STRING(H&,_WIDTH&,_HEIGHT&)
    var _FND&=HPIC.FINDCOLORINRAWDATA(COLORTOFIND&,RAWDATA$)

    IF _FND&=-1

        RETOUR _FND&

    ENDIF

    var X&=_FND& MOD _WIDTH&
    var Y&=0

    IF _FND& > 0

        Y&=_FND&\_WIDTH&

    ENDIF

    RETOUR X&*65536+(_HEIGHT&-Y&-1)

endproc

proc HPIC.FINDCOLORINRAWDATA

    PARAMETERS COL&,DATA$
    var C&=1
    var P&=0
    var SCOL$=CHR$(GETBVALUE(COL&))+CHR$(GETGVALUE(COL&))+CHR$(GETRVALUE(COL&))

    WHILE 1

        P&=INSTR(SCOL$,DATA$,C&)

        IFNOT P&

            BREAK

        ENDIF

        IFNOT (P&-1) MOD 4

            RETOUR P&*0.25

        ENDIF

        C&=P&+1

    ENDWHILE

    RETOUR -1

endproc


qui Unterschied liegt y cela im 1. Beispiel qui Suchfunktion 2x aufgerufen wird
KompilierenMarqueSéparation
SOMEPOS&=HPIC.PIXELSEARCH(HPIC&,COL&,1024,1024)
SOMEPOS&=HPIC.PIXELSEARCH(HPIC&,COL&,1024,1024)

et im 2. Beispiel également, allerdings per Whileloop
KompilierenMarqueSéparation
Whileloop 2

    SOMEPOS&=HPIC.PIXELSEARCH(HPIC&,COL&,1024,1024)

Endwhile


Im 2. Beispiel werde je puis hingewiesen cela Scol$ pas deklariert sei, quoique vom Verständnis her cela Gleiche passer sollte. Bien sûr pouvoir qui doppelte Aufruf keinen Sinn. cet Varianten sommes lediglich zur Fehlersuche entstanden.
 
XProfan 11| Vista(64) SP2
04.03.2009  
 



j'ai getestet 2 la fois aufzurufen + klappt. sur qui Schnelle konnte je dans Deinem Beispiel den faute pas erkennen.
KompilierenMarqueSéparation
si es ensuite später ums trouver mehrerer Pixel allez serait je hPic.bgr2String seulement einmalig appel.
 
04.03.2009  
 




Jörg
Sellmeyer
tiens dans qui Aider sous Retour pour:



important: aussi si une Procédure avec Retour sortir de wird, muss qui définition qui Procédure avec ENDPROC abgeschlossen volonté. cela sortir de einer Procédure darf pas dedans einer Tandis que-/Repeat-Boucle avoir lieu.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
04.03.2009  
 




Christian
Schneider
merci, cela erklärt Einiges.
 
XProfan 11| Vista(64) SP2
04.03.2009  
 



Tjupp, muss je updaten.
 
05.03.2009  
 




répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

21.977 Views

Untitledvor 0 min.
Normann Strübli09.06.2020
Walter31.12.2018
Peter Max Müller19.12.2017
E.T.12.12.2015
plus...

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie