Hallo,
Die Func _Timer_GetIdleTime() liefert mir ja alle Ticks seit der letzten Benutzeraktivität zurück fuer alle Aktivitaeten.
Gibt es eine Funktion die mir nur die der Maus ausgibt?
lg ePole
Hallo,
Die Func _Timer_GetIdleTime() liefert mir ja alle Ticks seit der letzten Benutzeraktivität zurück fuer alle Aktivitaeten.
Gibt es eine Funktion die mir nur die der Maus ausgibt?
lg ePole
#include <Array.au3>
$position_alt = MouseGetPos()
$Timer = TimerInit()
$minuten = 10
While 1
If TimerDiff($Timer) > $minuten*60*1000 Then
$position_neu = MouseGetPos()
If $position_neu[0] <> $position_alt[0] OR $position_neu[1] <> $position_alt[1] Then
MsgBox(0,"","Maus wurde innerhalb von "&$minuten&" Minute(n) bewegt")
;~ _ArrayDisplay($position_alt)
;~ _ArrayDisplay($position_neu)
ExitLoop
Else
MsgBox(0,"","Maus wurde bisher nicht bewegt.")
ExitLoop
EndIf
EndIf
sleep(5) ; <=== das hat gefehlt >.>
WEnd
Wie du das in dein script einbaust überlass ich dir
Gruß
EDIT: Nochmal kleine korrektur im code.
Wie du das in dein script einbaust überlass ich dir
LACH ... ich wusste doch das du gar nicht "soooo" gemein bist
ich denke das könnte ich mal versuchen...werde das ergebnis...so denn es auch funktioniert...mal posten
Wenn Du es als Funktion brauchst:
HotKeySet('{ESC}', '_End')
While True
ToolTip(_Timer_GetMouseIdleTime())
Sleep(20)
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 StringFormat('%0.3f', TimerDiff($iTimer) / 1000)
EndFunc
Func _End()
Exit
EndFunc
Also erstmal danke Oscar!
Auch Dir danke SEuBo!
Ich habe beide Scripte mal getestet, beide laufen und hoffe sie in mein Script einbauen zu können aber ich habe eine Frage noch zu beiden Scripten.
Warum nutzt das Script von Dir SEuBo 99% meiner CPU und das von Oscar 0%?
lg ePole
Bei dem Script von SEuBo fehlt ein Sleep.
Recht hast du, hab das wohl irgendwie vergessen *schäm*
Naja jetzt is meine version "korrigiert"
Recht hast du, hab das wohl irgendwie vergessen *schäm*
Naja jetzt is meine version "korrigiert"
Danke fuer den mod. Code...hatte es aber auch schon den Tipp von Oscar reingenommen und es funktionierte...jetzt folg die SCRIPTZUSAMMENFUEHRUNG ... GRINZ
hej SEuBo
meinst Du das Du mir beim Einbinden Deines Scriptes behilflich sein könntest?
Natürlich nicht selber machen, aber mir vieleicht sagen ob das was ich unten daraus gemacht habe ok ist bzw. gegenchecken?
Jetzt schliesst er mir den browser immer genau nach der eingestellten zeit auch wenn ich maus bewege
lg ePole
SEuBo`s Script included:
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <IE.au3>
#Include <Timers.au3>
#include <Array.au3>
$position_alt = MouseGetPos()
$Timer = TimerInit()
$minuten = IniRead(@ScriptDir & "\test.ini", "Test", "Time", "" )
$name = IniRead(@ScriptDir & "\test.ini", "Test", "Ap", "" )
HotKeySet("{ESC}","Kill")
[/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 & "\test.ini", "Test", "Path", "" ))
While 1
If TimerDiff($Timer) > $minuten*60*1000 Then
$position_neu = MouseGetPos()
If $position_neu[0] <> $position_alt[0] OR $position_neu[1] <> $position_alt[1] Then
sleep(200)
ExitLoop
Else
Kill()
ExitLoop
EndIf
EndIf
sleep(5)
WEnd
Func Kill()
WinActivate($name)
WinSetState($name, "", @SW_RESTORE)
Exit
EndFunc
Und dann habe ich es noch mit Oscars Funktion versucht...auch ohne Erfolg...vieleicht hier jemand eine Ahnung warum der Browser sich nicht schliesst?
Oscar`s Script included:
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <IE.au3>
#Include <Timers.au3>
$maxIdle_min = IniRead(@ScriptDir & "\test.ini", "Test", "Time", "" )
$name = IniRead(@ScriptDir & "\test.ini", "Test", "Ap", "" )
HotKeySet("{ESC}","Kill")
[/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 & "\test.ini", "Test", "Path", "" ))
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 StringFormat('%0.3f', TimerDiff($iTimer) / 1000)
EndFunc
Func Kill()
WinActivate($name)
WinSetState($name, "", @SW_RESTORE)
Exit
EndFunc
Hi,
[autoit]Until $timer > $maxIdle_min*60*1000
[/autoit]muss doch wohl
[autoit]Until $timer < $maxIdle_min*60*1000
[/autoit]Hi Andy und danke für Deine Hilfe...
hmmm...jetzt versteh ich nix mehr, der Browser schliesst nun sofort wieder mit Deiner Einstellung...??? Warum tut er es dann nicht umgekehrt???
vieleicht stimmt was hiermit nicht?
[autoit]*60*1000
[/autoit]irgendwie liegt es an dieser zeile:
[autoit]$maxIdle_min = IniRead(@ScriptDir & "\test.ini", "Test", "Time", "" )
[/autoit]wenn ich es so schreibe funktioniert es:
[autoit]$maxIdle_min = 20.000
[/autoit][autoit][/autoit][autoit]Until $timer > $maxIdle_min
[/autoit]jemand eine ahnung warum es mit der ini datei nicht funktioniert, da steht ja nix dolles drin...
ich habe natürlich kein Inifile, und das Script läuft....
Du solltest ggf beim Auslkesen der INI auch die Parameter so setzen, daß bei nichtvorhandensein oder fehlerhafter INI ein Wert eingetragen wird!
$maxIdle_min = number(IniRead(@ScriptDir & "\test.ini", "Test", "Time",20 ))
[/autoit]und natürlich hattest du richtig
[autoit]Until $timer > $maxIdle_min*60*1000
[/autoit]So, ich habs jetzt...es lag an der Zeile *69*1000
hier das funktionierende Script...danke an alle die mitgewirkt haben
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <IE.au3>
#Include <Timers.au3>
$maxIdle_min = IniRead(@ScriptDir & "\test.ini", "Test", "Time", "" )
$name = IniRead(@ScriptDir & "\test.ini", "Test", "Ap", "" )
HotKeySet("{ESC}","Kill")
[/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 & "\test.ini", "Test", "Path", "" ))
While True
Do
ToolTip(_Timer_GetMouseIdleTime())
Sleep(20)
$timer = (_Timer_GetMouseIdleTime())
Until $timer > $maxIdle_min*60
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 StringFormat('%0.3f', TimerDiff($iTimer) / 1000)
EndFunc
Func Kill()
WinActivate($name)
WinSetState($name, "", @SW_RESTORE)
Exit
EndFunc
und die ini datei:
Würde mich freuen wenn jemand das Script gegencheckt und mir sagt ob es so ok ist
Danke!