Script restart nach Ende eines Programmes
-
- [ offen ]
-
HelloWorld -
20. Dezember 2009 um 20:08 -
Geschlossen -
Erledigt
-
-
So funktioniert das nicht, das würde nur das Fenster schließen und bei Erfolg das Programm neu starten. Du müsstest (mit AdLib oder in einer Schleife) überprüfen, ob das Fenster existiert, und dann das Script neu starten. Also:
[autoit]
[/autoit]
Sleep(500)
AdLibRegister("CheckWin")
While 1
Sleep(100)
WEnd
Func CheckWin()
If NOT WinExists("Fenstername") Then _restart
EndFunc
Func _restart()
Run(@ScriptFullPath)
Exit
EndFunc -
Ok, danke für die Info.
Ich habe hier aber noch ein paar Mausklickbefehle, sowie SenkKey Befehle.
Wo bring ich die dann unter? Davor?
EDIT: Das klappt nicht. Hier mein jetziger Code:
Code
Alles anzeigenRun ("C:\Pfad zur Datei") WinWaitActive("Lizenzschlüssel") Send("{ENTER}") Sleep(7000) WinActive("Fenstername") MouseClick("left" ,69,771,2) MouseClick("left" ,634,562,2) Sleep(500) AdLibRegister("CheckWin") While 1 Sleep(100) WEnd Func CheckWin() If NOT WinExists("Fenstername") Then _restart EndFunc Func _restart() Run(@ScriptFullPath) Exit EndFunc
-
Schreib die Befehle vor die While-Schleife (oder in die Schleife, falls sie immer wiederholt werden sollen.)
-
Ok, aber mein Fenstername enthält ein Pluszeichen.
Im WinActive Befehl knnte ich dieses mit "{PLUS}" aufrufen.
Bei IfNotWinExists klappt das andscheinend nicht...
-
Schreib das +-Zeichen einfach ganz normal rein, sollte funktionieren.
-
Scheint nicht zu funktionieren.
Hier nochmal der Code:
Code
Alles anzeigenAdLibRegister("CheckWin") While 1 Sleep(100) Run ("C:\Program Files\...e") WinWaitActive("Lizenzschlüssel") Send("{ENTER}") Sleep(7000) WinActive("dummy-Beenden mit D{PLUS}A") MouseClick("left" ,69,771,2) MouseClick("left" ,634,562,2) Sleep(500) WEnd Func CheckWin() If NOT WinExists("dummy-Beenden mit D+A") Then _restart EndFunc Func _restart() Run(@ScriptFullPath) Exit EndFunc
EDIT: Error(Fehler) in Line 14
-
Was denn für ein Fehler?
PS: WinActive bringt so nichts, ich glaube du meinst WinActivate
-
Habs mal geändert.
Es kommt folgender Fehler:
Error in Line 14:
If NOT WinExists("dummy-Beenden mit SHIFT+ESC") Then _restart^ERROR
Missing seperator character after keyword
-
_restart -> _restart()
AdLibRegister("CheckWin") direkt am Anfang? Wenn das Fenster nicht sofort existiert wird sich dein Script ein einem ewigen Neustarten aufhängen.
Wann soll genau überprüft werden ob das fenster noch existiert?
-
Vielen, vielen Dank, jetzt klappt es endlich!