Was ist hier falsch ????

09/12/2010 22:27 siolino#1
dieses kleine script soll nichts weiter als einen zeitbalken überwachen.
der balken ist erst braun und färbt sich allmählich von links nach rechts rot.
nun will ich einen pixel am ende des balkens überwachen, und sobald er sich umfärbt die nächsten schritte abarbeiten.

For $i=1 to 2000
sleep (2000)
MouseClick("left",405,379,1, sleep (2000))
$Pixel = 0x572A11
While $Pixel = 0x572A11
$Pixel = PixelGetColor (747,700)
Sleep (3000)
Wend
sleep (10000)
MouseClick("left",413,439,1, sleep (2000))
MouseClick("left",852,455,1, sleep (2000))
MouseClick("left",644,722,1, sleep (2000))
$Pixel1 = 0x592B13
While $Pixel1 = 0x592B13
$Pixel1 = PixelGetColor (1028,690)
Sleep (3000)
WEnd
sleep (10000)
MouseClick("left",794,781,1, sleep (2000))
sleep (17000)
MouseClick("left",818,807,1, sleep (2000))
MouseClick("left",419,522,1, sleep (2000))
MouseClick("left",679,730,1, sleep (2000))
MouseClick("left",774,692,1, sleep (2000))
MouseClick("left",972,681,1, sleep (2000))
next

es gibt dann nochmals einen zeitbalken der genauso überwacht werden soll.
leider funktioniert es aber nicht ! ich habe sehr oft geprüft ob der pixel an der entsprechenden koordinate auch mit der richtigen farbe angegeben ist.
es ist immer der selbe pixel mit der selben farbe.
09/12/2010 23:10 maxi39#2
mach das doch mit einer if schleife , bsp code :


PHP Code:
HotKeySet("{F1}","_a")
HotKeySet("{F2}","_beenden")



while 
1
    Sleep
(100)
    
WEnd






Func _a
()
while 
1

$a 
=PixelGetColor(642,545
    if 
$a <> 0xFFFFFF then MsgBox(0,"","") ;statt der msgboxdeine nächste funktion


    WEnd
endfunc


Func _beenden
()

Exit

Endfunc 
oda hab ichs falsch verstanden?
09/13/2010 09:07 Banana.Crafts#3
Der erst Fehler, der mir auffällt ist eig ein logischer Fehler:
(man betrachte die vorletzte Zeile;D)

PHP Code:
For $i=1 to 2000
sleep 
(2000)
MouseClick("left",405,379,1sleep (2000)) 
$Pixel 0x572A11
While $Pixel 0x572A11
$Pixel 
PixelGetColor (747,700)
Sleep (3000)
Wend
sleep 
(10000)
MouseClick("left",413,439,1sleep (2000)) 
MouseClick("left",852,455,1sleep (2000)) 
MouseClick("left",644,722,1sleep (2000)) 
$Pixel1 0x592B13
While $Pixel1 0x592B13
$Pixel1 
PixelGetColor (1028,690)
Sleep (3000)
WEnd
sleep 
(10000)
MouseClick("left",794,781,1sleep (2000)) 
sleep (17000)
MouseClick("left",818,807,1sleep (2000)) 
MouseClick("left",419,522,1sleep (2000)) 
MouseClick("left",679,730,1sleep (2000)) 
MouseClick("left",774,692,1sleep (2000)) 
MouseClick("left",972,681,1sleep (2000)) 
$i=$i+1
next 
09/13/2010 10:17 iDunnoi#4
oder eben
PHP Code:
For $i=1 to 2000 Step +1
..
..
next 
09/13/2010 13:17 siolino#5
zunächst danke für eure antworten !
@maxi39 es gibt sicher viele, und mit den möglichkeiten bei autoit auch schnellere lösungen. leider bin ich nicht so im thema.
wenn ich nicht völlig falsch liege müßte es doch auch mit meiner lösung gehen.

@banana&mysthik ok ich denke das hab ich begriffen. ich hab vergessen dem zähler zu sagen wann die schleife zuende ist und es jetzt bei zählstand 2 weitergehen soll.
is das korrekt ?
ich habe das jetzt korrigiert :)
aber dennoch, der erste while befehl wird ausgeführt, der balken wird überwacht. ändert sich die farbe auf der pixelkoordinate arbeitet das script die weiteren befehle ab.
allerdings wird der zweite whilebefehl völlig ignoriert.
und ich kapiere einfach nicht warum.
09/13/2010 15:45 | Moep |#6
Code:
MouseClick("left",413,439,1, [COLOR="Red"]sleep (2000)[/COLOR])
Was soll das? Mach mal:
Code:
MouseClick("left",413,439,1)
sleep (2000)
Oder willst du dass die Maus 2s lang gedrückt wird?


Außerdem nimm mal anstatt der while...wend eine do...until Schleife. Sparst ne var und is übersichtlicher.
Code:
Do
Sleep (3000)
Until PixelGetColor (1028,690) = 0x592B13
09/14/2010 01:17 siolino#7
Moep das war die Topantwort ! :)
Es lag tatsächlich daran das ich den Sleepbefehl direkt hinter die Befehle gesetzt hatte.
(Wusste gar nicht das das Maustaste gedrückt halten bedeutet)
Jetzt leuchtet es ;) Immer wenn das While ausgeführt wurde, war die Seite noch gar nicht aufgebaut. Demnach hatte der Pixel auch nicht die richtige Farbe.
Jetzt läuft das Script absolut einwandfrei !
Danke nochmals für euer Engagement :)
Und besonders Dir Moep für diese Antwort.
Habe wieder 3 Dinge dazu gelernt dank euch :)

Machts gut bis dann mal !