Hallo,
ich poste hier mal mein Script das alle paar Aufrufe mal nicht funktioniert und ich weiss einfach nicht mehr warum.
Kann mir jemand helfen? Ich verzweifle bald.
Erläuterung zu dem was das Script machen soll:
1. Das Script wird aus einem Player heraus gestartet (soetwas wie ein Flashplayer).
2. Dann verfrachtet es diesen Player auf die Taskleiste und öffnet einen vollbildmodus Webbroser mit Inhalten aus dem Netz.
3. Wenn die Maus eine X-Zeit nicht bewegt wird, schliesst sich der Webbroser wieder und öffnet den inaktiven Player wieder in den Vordergrund.
Zur Erleichterung ist ein Tooltipp drin der anzeigt wie lange der Browser schon geöffnet ist in Milisekunden. Voreingestellt sind 1 Minute.
Doch manchmal fängt der Tooltippzähler gar nicht erst an zu zählen und schliesst den Browser auch demnach nicht nach der voreingestellten zeit.
Was ist denn da los? Kann man irgendetwas machen? Ist das Script so logisch aufgebaut?
Kann man den nicht irgendwie der Maus nach Start des Browser eine kleine kaum sichtbare Mausbewegung initialisieren?
SCRIPT
Spoiler anzeigen
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <IE.au3>
HotKeySet("{ESC}","Kill")
[/autoit] [autoit][/autoit] [autoit]$maxIdle_min = 1
$name = "FlashPlayer"
WinSetState($name, "", @SW_HIDE)
[/autoit] [autoit][/autoit] [autoit]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 & "http://www.google.de" ))
While True
Do
ToolTip(_Timer_GetMouseIdleTime())
Sleep(20)
$timer = (_Timer_GetMouseIdleTime())
Until $timer > $maxIdle_min*60*1000
Kill()
WEnd
Func _Timer_GetMouseIdleTime()
If Not IsDeclared('aMousePosOld') Then Global $aMousePosOld = MouseGetPos()
If Not IsDeclared('iTimer') Then Global $iTimer = TimerInit()
Local $aMousePos = MouseGetPos()
If $aMousePos[0] <> $aMousePosOld[0] Or $aMousePos[1] <> $aMousePosOld[1] Then
$aMousePosOld = $aMousePos
$iTimer = TimerInit()
EndIf
Return Int(TimerDiff($iTimer))
EndFunc
Func Kill()
WinActivate($name)
WinSetState($name, "", @SW_RESTORE)
WinSetState($name, "", @SW_SHOW)
Exit
EndFunc