Frage zu If-ElseIf Befehl

11/06/2010 22:37 xflibbsx#1
Hi,
ich habe diesen simplen Bot für Warrock geschrieben und wollte mit einem If-ElseIf befehl eine beendigung des scripts bei schließung von warrock erreichen, aber irgendwie klappt das nicht. Hier ist der Code:
Code:
HotKeySet("{f6}", "_Exit")

While 1
    MouseClick("left",451,77,1,0)
    MouseClick("left",889,615,1,0)
    MouseClick("left",889,640,1,0)
    $PID=ProcessExists("WarRock.exe") 
    If $PID > 0  Then 
    EndIf   ;soll wenn warrock noch läuft If beenden und die schleife weitergehen lassen
    
ElseIf $PID = 0 Then ;soll , wenn WarRock nicht mehr läuft das script beenden
    Exit
    
WEnd
Func _Exit()
    Exit
    Endfunc
Hab ich irgendwo einen kleinen fehler gemacht, oder hab ichs voll versemmelt?

P.S. Ich bin Beginner mit AutoIt
11/06/2010 22:40 amnesi#2
HotKeySet("{F6}", "_Exit")

While 1
MouseClick("left",451,77,1,0)
MouseClick("left",889,615,1,0)
MouseClick("left",889,640,1,0)
$PID=ProcessExists("WarRock.exe")
If $PID > 0 Then
exit
WEnd

Func _Exit()
Exit
endfunc
11/06/2010 22:47 lolkop#3
oder am besten gleich
Code:
HotKeySet("{f6}", "_Exit")

While 1
	MouseClick("left", 451, 77, 1, 0)
	MouseClick("left", 889, 615, 1, 0)
	MouseClick("left", 889, 640, 1, 0)
	If Not ProcessExists("WarRock.exe") Then Exit
WEnd

Func _Exit()
	Exit
EndFunc
11/06/2010 22:47 maxi39#4
PHP Code:
HotKeySet("{f6}""_Exit")
HotKeySet("{F7}","_start")


While 
1
    Sleep
(200)    
WEnd


func _start
()
do 
    
MouseClick("left",451,77,1,0)
    
MouseClick("left",889,615,1,0)
    
MouseClick("left",889,640,1,0)
    
$PID=ProcessExists("WarRock.exe"
    If 
$PID 0  Then 
   

EndIf   ;soll wenn warrock noch läuft If beenden und die schleife weitergehen lassen
    
     
   Until $PID 

 
Exit 

EndFunc



Func _Exit
()
    Exit
    
Endfunc 
11/06/2010 22:47 xflibbsx#5
@amnesi
kapier ich nicht, der beendet doch jetzt warrock wenns noch läuft oder?
@lolkop
Das kapier ich,ist simpel und sieht gut aus
@maxi39
sieht profesionell aus, ist mir persönlich aber zu umständlich

Danke euch allen drei für die schnellen antworten
11/06/2010 23:05 amnesi#6
ähm if $PID = 0 also wenn der Prozess NICHT existiert ;)
11/07/2010 00:08 MoepMeep#7
Gibts in AutoIt kein do while? ._.
11/07/2010 00:17 lolkop#8
Quote:
Originally Posted by MoepMeep View Post
Gibts in AutoIt kein do while? ._.
in autoit gibt es do ... until =)
11/07/2010 00:31 MoepMeep#9
Code:
do
...
until(!ProcessExists("WarRock.exe"))
Wie auch immer die korreckte AutoIt syntax ist.
11/07/2010 00:35 maxi39#10
Quote:
Originally Posted by MoepMeep View Post
Code:
do
...
until(!ProcessExists("WarRock.exe"))
Wie auch immer die korreckte AutoIt syntax ist.
ist länger ...
11/07/2010 00:56 lolkop#11
Quote:
Originally Posted by MoepMeep View Post
Code:
do
...
until(!ProcessExists("WarRock.exe"))
Wie auch immer die korreckte AutoIt syntax ist.
das wäre in der tat auch eine gute lösung des problems =) wenn auch in der ausführung exact das selbe wie das von mir oben gepostete.

Code:
HotKeySet("{f6}", "_Exit")

Do
	MouseClick("left", 451, 77, 1, 0)
	MouseClick("left", 889, 615, 1, 0)
	MouseClick("left", 889, 640, 1, 0)
Until Not ProcessExists("WarRock.exe")

Func _Exit()
	Exit
EndFunc
wenn der thread ersteller noch eine codezeile sparen will hier nochmal der vorschlag von MoepMeep in autoit syntax