Script restart nach Ende eines Programmes

  • Hallo,

    gibt es eine Möglichkeit das Script zu restarten, wenn sich ein bestimmtes Fenster beendet?

    Ich hatte da an

    Code
    If WinClose("blabla") then
    Application.restart()

    gedacht.

    Allerdings scheint das nicht zu funktionieren.

    Gibt es da eine andere Möglichkeit?


    mfg HelloWorld

  • 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]


    Sleep(500)
    AdLibRegister("CheckWin")
    While 1
    Sleep(100)
    WEnd
    Func CheckWin()
    If NOT WinExists("Fenstername") Then _restart
    EndFunc
    Func _restart()
    Run(@ScriptFullPath)
    Exit
    EndFunc

    [/autoit]
  • 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:

    Einmal editiert, zuletzt von HelloWorld (20. Dezember 2009 um 20:37)

  • 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...

  • Scheint nicht zu funktionieren.

    Hier nochmal der Code:


    EDIT: Error(Fehler) in Line 14

  • 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?