PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage zu Autoit code



nelly3500
21.05.2010, 21:49
Hallo,
Ich habe eine frage undzwar habe ich jetzt diesen Code geschrieben:


#include <ImageSearch.au3>
While 1
$res = _imagesearcharea(fertig.png',1,0,0,1679,1049,$x,$y ,10)
If $res = 1 Then
MouseMove($x,$y,1)
MouseClick("left")
EndIf
WEnd
...und jetzt wollte ich nach dem Wend noch einen code schreiben aber wenn ich das Programm laufen lasse dann ist das eine enloisschleife wie kann ich das machen das wenn er kein Bild bei Imagesearch mehr findet das er den code dann weiterließt also aus der schleife rauskommt ?

$User
21.05.2010, 21:58
#include <ImageSearch.au3>
While 1
$res = _imagesearcharea(fertig.png',1,0,0,1679,1049,$x,$y ,10)
If $res = 1 Then
MouseMove($x,$y,1)
MouseClick("left")
else
wend
EndIf
WEnd

bin mir grade nciht so sicher... aber ich denke so in etwa müsste es aussehen ;)

edit:
son quatsch... sorry... ist wohl doch ein wenig länger her als ich dahcte das ich das letzte mal was mit autoit gemacht habe... sorry...^^
ich guck nochmal und editiere die richtige lösung rein(das da oben ist falsch) .. :D

nelly3500
21.05.2010, 22:09
nein das funktioniert nicht der geht den code nicht weiter
Fehlermeldung :


>"C:\Program Files\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\Users\human\Desktop\AutoIt v3 Script (neu) (2).au3"
C:\Users\human\Desktop\AutoIt v3 Script (neu) (2).au3 (43) : ==> "Wend" statement with no matching "While" statement.:
wend

>Exit code: 1 Time: 0.223
was kann ich da machen ?

$User
21.05.2010, 22:17
war grade kurz auf der toilette und schon fiels mir wieder ein :D
das ganze könntest du mit ner do...until schleife machen... ist in diesem fall besser als while ;)


#include <ImageSearch.au3>
do
$res = _imagesearcharea(fertig.png',1,0,0,1679,1049,$x,$y ,10)
until $res = 1

MouseClick("",$x, $y)

ich glaube der code müsste funktionieren ;)

nelly3500
22.05.2010, 00:21
Jetzt geht im code zwar weiter aber er geht den imagesearch code nur einmal durch, obwohl 100 von den Bildern die er finden soll (die alle identisch sind) auf meinem Desktop sind und er findet nur einen klickt ihn an und geht den code weiter obwohl er ja wieder zurückspringen sollte. Was ist daran denn falsch ?

(genau den code habe ich verwendet:

$res = _imagesearcharea('fertig.png',1,0,0,1679,1049,$x,$ y,10)
Until $res = 1
MouseClick("",$x, $y))
Was kann ich jetzt noch machen ?

$User
22.05.2010, 09:43
achso... tut mir leid... da hab ich ein fehler gemacht... also wenn ich das richtig versteh willst du das er solange den bildschirm absucht und die positionen die er findet anklickt, bis er nichts mehr findet?

dann müsste das so aussehen:


#include <ImageSearch.au3>
do
$res = _imagesearcharea(fertig.png',1,0,0,1679,1049,$x,$y ,10)
MouseClick("",$x, $y)
until $res = 0

ich glaube das ist es was du suchst^^

nelly3500
22.05.2010, 10:12
der springt mit der maus einmal nach ganz oben links auf dem Bildschirm und geht den code weiter was ist an dem code denn noch falsch ?



#include <ImageSearch.au3>
$x = 0
$y = 0
do
$res = _imagesearcharea('fertig.png',1,0,0,1679,1049,$x,$ y,10)
MouseClick("",$x, $y)
until $res = 0
...

$User
22.05.2010, 10:17
$x = 0
$y = 0

ich glaube das muss raus ;)

nelly3500
22.05.2010, 10:21
dann kommt folgender fehler wenn ich x und y rausnehme :

C:\Users\human\Desktop\AutoIt v3 Script (neu) (2).au3 (36) : ==> Variable used without being declared.:
$res = _imagesearcharea('fertig.png',1,0,0,1679,1049,$x,$ y,10)
$res = _imagesearcharea('fertig.png',1,0,0,1679,1049,^ ERROR

was kann ich jetzt machen ?

$User
22.05.2010, 10:50
#include <ImageSearch.au3>
$res = _imagesearcharea(fertig.png',1,0,0,1679,1049,$x,$y ,10)
do
$res = _imagesearcharea(fertig.png',1,0,0,1679,1049,$x,$y ,10)
MouseClick("",$x, $y)
until $res = 0

klapts so? sorry... steh heute wohl ein bisschen aufm schlauch^^

nelly3500
22.05.2010, 15:29
Dankeee es klappt !!!
:D

mit welchen code kann ich das machen das das fenster von meinem Programm immer im Vordergrund bleibt ?

(ich hab so ein Programm mit Oberfäche geschrieben)

$User
22.05.2010, 18:46
das ist kein problem ;)
du musst einfach bei deinem "guicreate"(also dem anfang der gui) den erweiterteten stil $WS_EX_TOPMOST einfügen:


GUICreate ( "title" [, width [, height [, left [, top [, style [, exStyle [, parent]]]]]]] )

bsp.:


guicreate ("mein fenster", 500,500,500,500,,$WS_EX_TOPMOST,,)

falls du bei style und parent keine angaben hast, kannste das einfach so wie ich frei lassen... aber die kommas müssen hin ;)