Hallo,
ich habe da mal eine Frage.
Mein Script öffnet einen Browser im Vollbildmodus mit einer HTML Datei aus dem Netzt und soll sich nach 1 Minuten der Inaktivität (Maus) von selbst wieder schliessen und dabei dann ein anderes Programm aus der Taskleiste wieder in den Vordergrund holen. Danke an alle die mir hier dabei geholfen haben!
Soweit läuft das Script 1a, doch manchmal habe ich das Problem das sich der Browser nicht genau nach meiner eingestellten 1 Minute von selbst schliesst, sondern erst nach 5 oder 7 ... usw. Woran kann es liegen? Ist hier irgendwas falsch gescriptet? Oder liegt es daran das die Maus auf der HTML Datei im Hintergrund durch irgendeinen im Hintergrund laufenden Prozess (wie zB. einer Flashdatei) aktiviert wird? Wenn ich die Maus dann nach 5 Minuten mal bewege weil ich die Warterei leid bin und dann wieder ruhen lasse fährt der Browser dann doch nach einer Minute runter.
Wo kann ich das herausfinden was da im Busch ist?
Für mich sieht es so aus als wenn das Script eine initiale Bewegung der Maus braucht um dann die definierte Zeit herunterzuzählen zu können. Wenn ich also die EXE starte und gleich die Maus loslasse, tut sich nix. Wenn ich die Maus aber von Anfang an ein wenig bewege dann schliesst sich wie gewünscht der Browser nach der 1 Minute. Hmmm...kann man die erste Bewegung der Maus irgenwie initialisieren sodass gleich bei Ausführung des Scriptes der Countdown startet? Es ist wichtig das der Browser nach Inaktivität herunterfährt, aber er darf nicht herunterfahren wenn jemand gerade dabei ist in der Seite herumzuspielen. Also es darf das Schliessen des Browsers nicht erzwungen werden.
Das Script:
[autoit]
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <IE.au3>
#Include <Timers.au3>
$name = IniRead(@ScriptDir & "\tireconfig.ini", "Tireconfig", "Ap", "" )
[/autoit][autoit][/autoit][autoit]HotKeySet("{ESC}","Kill")
Global Const $WS_EX_COMPOSITED = 0x02000000
$gui = GUICreate("",300,300,0,0, BitOR($WS_SIZEBOX, $WS_POPUPWINDOW, $WS_CLIPCHILDREN), BitOR($WS_EX_TOOLWINDOW, $WS_EX_COMPOSITED))
GUISetState()
GUISetState(@SW_MAXIMIZE)
$GUISize = WinGetPos($gui)
$eIE = _IECreateEmbedded()
GUICtrlCreateObj($eIE, $GUISize[0], $GUISize[1], $GUISize[2], $GUISize[3])
_IENavigate($eIE,IniRead(@ScriptDir & "\tireconfig.ini", "Tireconfig", "Path", "" ))
$maxIdle_min = IniRead(@ScriptDir & "\tireconfig.ini", "Tireconfig", "Time", "" )
[/autoit][autoit][/autoit][autoit]Do
sleep(200)
Until _Timer_GetIdleTime() > $maxIdle_min*60*1000
Kill()
Func Kill()
WinActivate($name)
WinSetState($name, "", @SW_RESTORE)
Exit
EndFunc