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!
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!
vielleicht so??
[autoit]
While 1
If @Hour = 11 And @MIN = 53 Then
ProcessClose("iexplore.exe")
Sleep(1000)
ShellExecute("iexplore.exe")
EndIf
WEnd
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.
detailverbesserung: sleep auf 60000 erhöhen, noch ein sleep in die Schleife...
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
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
das ist aber recht unschön
so sollte es gehen
[autoit]
Dim $i = 0
While 1
If @Hour = 11 + $i And @MIN = 51 Then
ProcessClose("iexplore.exe")
Sleep(1000)
ShellExecute("iexplore.exe")
$i = $i + 2
EndIf
WEnd
oder so 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?
Schau Dir mal Timerinit und Timerdiff in der Hilfe an...
Könnte Dir auch helfen
oder so 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?
keine ahnung wie es dann reagiert.. müsste man testen
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.
Vielleicht eine übergeordnete While - Schleife?
Aber ein Sleep dann nicht vergessen, da steigt die CPU Auslastung sonst zu hoch
So gehts.
[autoit]
AdlibEnable("TimeCheck", 5000)
While True
Sleep(1000)
WEnd
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
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...