Anwendung/Programm nach bestimmter Zeit beenden und wieder neu starten

  • Hallo zusammen,

    ich möchte gerne ein Programm, genauer gesagt, den Internet Explorer, nach einer bestimmten Zeit (z.B. 24 Stunden) beenden und neu starten. Mit welcher Funktion ist dies möglich?
    Vielen Dank im Voraus für eure Hilfe!

  • Hm, das werd ich mal ausprobieren, danke! :)

    Kann ich da einen Titel des IE-Fensters mit angeben? Wenn ja, wie? Weil ich hab da immer mehrere IEs offen und möchte halt nur einen bestimmten schließen.

    Einmal editiert, zuletzt von Agi (25. Mai 2009 um 11:59)

  • sorry, hab ein exit vergessen

    [autoit]


    While 1
    If @Hour = 11 And @MIN = 55 Then
    ProcessClose("iexplore.exe")
    Sleep(1000)
    ShellExecute("iexplore.exe")
    Exit
    EndIf
    WEnd

    [/autoit]
  • Kann ich da einen Titel des IE-Fensters mit angeben? Wenn ja, wie? Weil ich hab da immer mehrere IEs offen und möchte halt nur einen bestimmten schließen.

  • Wie kann ich das machen, wenn ich die Anwendung in einem anderen Zeitrytmus beenden will, z.B. alle 2 Stunden?

    Danke schonmal!

  • bastle dir einen sleep der so lange geht...

    sleep (10000) = 10 sekunden
    sleep (60000) = 60 Sekunden / 1 min
    sleep (3600000) = 1 std.
    sleep (7200000) = 2 std.

    aber es gab irgend eine maximalzeit für sleeps... die weiß ich aber grade nicht... dann musst du halt mehrere hintereinander machen...

    MFG: Blacky911

    Kleiner AutoIt Lehrling :)

  • so sollte es gehen

    [autoit]


    Dim $i = 0

    [/autoit][autoit][/autoit][autoit]

    While 1
    If @Hour = 11 + $i And @MIN = 51 Then
    ProcessClose("iexplore.exe")
    Sleep(1000)
    ShellExecute("iexplore.exe")
    $i = $i + 2
    EndIf
    WEnd

    [/autoit]
  • oder so :D geht auch ^^

    aber dann rechnet er ja immer + 2...

    also dann 11+2 =13 usw... aber wenn er dann anchher 23+2 rechnet = 25 ???
    muss da nicht auch irgendwas gemacht werden?

    Kleiner AutoIt Lehrling :)

  • Okay dann guck ich mir mal die Timerfunktionen an....

    Ein weiterer Punkt wäre, wie kriege ich es hin, dass der STÄNDIG die Zeit überprüft? Mein Skript ist eher umfangreich und daher würde die Prüfung nur so alle 20 Minuten (geschätzt) passieren, somit kann es sein, dass der angegebene Zeitpunkt verpasst wird und sich somit die Prüfung auf weitere 24 Stunden, oder 2 Stunden, oder was auch immer, verlängert.

    Ich kann das Skript leider nicht posten, wegen Firmengeheimnis und so... Auf jeden Fall geht es im Groben darum, dass ein LCD TV ferngesteuert wird. Auf diesem sollen ständig wechselnd einmal ein TV-Programm, und halt auch verschiedene Programme angezeigt werden. Das heißt, in einem While-Durchlauf werden stets ungefähr 5 Programme durchlaufen und nacheinander für eine bestimmte Zeit angezeigt.

  • So gehts.

    [autoit]


    AdlibEnable("TimeCheck", 5000)

    [/autoit][autoit][/autoit][autoit]

    While True
    Sleep(1000)
    WEnd

    [/autoit][autoit][/autoit][autoit]

    Func TimeCheck()
    Local $i = 0
    If @HOUR = 0 + $i And @MIN = 0 Then
    ProcessClose("iexplore.exe")
    Sleep(1000)
    ShellExecute("iexplore.exe")
    $ctn = $ctn + 2
    If $ctn = 12 Then
    $ctn = 0
    EndIf
    EndIf
    EndFunc ;==>TimeCheck

    [/autoit]

    Statt der While schleife müsstest du dann einfach deine Hauptschleife nehmen.
    So würde sich der Prozess iexplore.exe Ab 0 Uhr alle 2 Stunden schließen und wieder öffnen.
    Sollte im groben so funktionieren, ist aber ungetestet ;)

  • Das funktioniert so leider nichts, da tut sich gar nichts.

    Ich habe die Funktion hinter meine riesige While Schleife gepackt. Ich denke das Sleep in deiner Schleife hat keinen tieferen Sinn, oder? Ich glaube jedenfalls, dass so die Funktion gar nicht aufgerufen wird...