Hi,
ich habe hier mal eine kleine UDF gebaut zur Erkennung ob der user (aktiv) den PC benutzt.
hier mal ein Beispiel
Spoiler anzeigen
#include "AFKUdf.au3"
GUICreate("Afk UDF", 200, 50)
$Label = GUICtrlCreateLabel("Du bist da!", 75, 10, 50, 50)
GUISetState(@SW_SHOW)
_AFK_Startup(1, "There", "Away")
[/autoit] [autoit][/autoit] [autoit]While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
_AFK_Shutdown()
Exit
EndSwitch
WEnd
Func There()
GUICtrlSetData($Label, "Du bist da!")
EndFunc ;==>There
Func Away()
GUICtrlSetData($Label, "Du bist weg!")
EndFunc ;==>Away
und hier die Udf
Spoiler anzeigen
Global $__AFK_AtKeyboardFunc
Global $__AFK_Time
Global $__AFK_AwayFunc
Global $__AFK_Timer = 0
Global $__AFK_MPos
Global $__AFK_Called = 0
; #FUNCTION# ======================================================================================
; Name ..........: _AFK_Startup()
; Description ...: Startet die Afk UDF
; Syntax ........: _AFK_Startup($nTime, $AtKeyboarsFunc, $AwayFunc)
; Parameters ....: $nTime - Zeit (in Minuten) wann die Away Funktion aufgerufen werden soll
; $AtKeyboarsFunc - Funktion die aufgerufen wird wenn der user sich am PC befindet.
; $AwayFunc - Funktion die aufgerufen wird wenn der User nicht am PC befindet.
; Return values .: Failure: -1
; Author ........: Sprenger120
; Modified ......:
; Remarks .......:
; Related .......:
; Link ..........:
; Example .......:
; =================================================================================================
Func _AFK_Startup($nTime, $AtKeyboarsFunc, $AwayFunc)
If Number($nTime) = 0 And Number($nTime) < 1 Then Return -1
$__AFK_Time = $nTime
$__AFK_AwayFunc = $AwayFunc
$__AFK_AtKeyboardFunc = $AtKeyboarsFunc
$__AFK_Timer = 0
$__AFK_Called = 0
$__AFK_MPos = MouseGetPos()
AdlibRegister("__AFK_Get", 1000)
EndFunc
; #FUNCTION# ======================================================================================
; Name ..........: _AFK_Shutdown()
; Description ...: Löscht alle benutzten Resourcen
; Syntax ........: _AFK_Shutdown()
; Parameters ....:
; Author ........: Sprenger120
; Modified ......:
; Remarks .......:
; Related .......:
; Link ..........:
; Example .......:
; =================================================================================================
Func _AFK_Shutdown()
$__AFK_AtKeyboardFunc = ""
$__AFK_Time = ""
$__AFK_AwayFunc = ""
$__AFK_Timer = 0
$__AFK_MPos = ""
$__AFK_Called = 0
AdlibUnRegister("__AFK_Get")
EndFunc
; #FUNCTION# ======================================================================================
; Name ..........: __AFK_Get()
; Description ...: Internal
; Syntax ........: __AFK_Get()
; Parameters ....:
; Author ........: Sprenger120
; Modified ......:
; Remarks .......:
; Related .......:
; Link ..........:
; Example .......:
; =================================================================================================
Func __AFK_Get()
$__AFK_TempPos = MouseGetPos()
If $__AFK_TempPos[0] = $__AFK_MPos[0] And $__AFK_TempPos[1] = $__AFK_MPos[1] Then
$__AFK_Timer += 1
Else
$__AFK_Timer = 0
$__AFK_MPos = MouseGetPos()
If $__AFK_Called = 0 Or $__AFK_Called = 2 Then
Call($__AFK_AtKeyboardFunc)
$__AFK_Called = 1
EndIf
EndIf
If $__AFK_Timer >= ($__AFK_Time * 60) Then
If $__AFK_Called < 2 Then
$__AFK_Called = 2
Call($__AFK_AwayFunc)
EndIf
EndIf
EndFunc
Fragen, Anregungen, Feedback bitte posten.