Sign in to follow this  
Followers 0
Kiesp

check if user is idle ?

3 posts in this topic

Hey!

I was thinking, is it possible to detect if the user if afk or idle.. i made this program and it takes alot of the cpu, and that ok.. im fine with that. but i only want to run it when im not using the computer or watching a movie on it.. but is that possible ? and if it is.. how ?

I could ofc use _ispressed on every key.. but that might take a while.. is there another way ?

-Kiesp


http://www.autoitscript.com/forum/index.php?showtopic=69911 <-- Best hacker ever :D

Share this post


Link to post
Share on other sites

#2 ·  Posted (edited)

$counter = 0
$SecondsUntilConsideredAFK = 5
while 1
    $mouse1 = mousegetpos(0)
    sleep(10)
    $mouse2 = mousegetpos(0)
    if $mouse1 = $mouse2 then $counter = $counter+1
    if $counter = $SecondsUntilConsideredAFK then msgbox(1,"","I'm AFK lol")
    sleep(990)
wend

Edited by alex OF DEATH

Share this post


Link to post
Share on other sites

i made this program and it takes alot of the cpu

Perhaps you should use Sleep(10) inside your main loop.

Here is one method to check idle:

#include <Date.au3>

$IdleMinimum = 50

While 1
    $iIdle = _IdleWaitStart ($IdleMinimum)
    ConsoleWrite (_Now() & ' ' & @UserName & ' not active ' & _TickToTimeString ($iIdle) & @CRLF)
    $iIdle = _IdleWaitCommit($IdleMinimum)
    ConsoleWrite (_Now() & ' ' & @UserName & ' was not active ' & _TickToTimeString ($iIdle) & @CRLF)
Wend


Func _IdleWaitStart($idlesec)
    Local $aRet, $iSave, $iTick, $LastInputInfo = DllStructCreate ("uint;dword")
    DllStructSetData ($LastInputInfo, 1, DllStructGetSize ($LastInputInfo))
    DllCall ("user32.dll", "int", "GetLastInputInfo", "ptr", DllStructGetPtr ($LastInputInfo))
    Do
        Sleep(200)
        $iSave= DllStructGetData ($LastInputInfo, 2)
        DllCall ("user32.dll", "int", "GetLastInputInfo", "ptr", DllStructGetPtr ($LastInputInfo))
        $aRet = DllCall ("kernel32.dll", "long", "GetTickCount")
    Until ($aRet[0] - DllStructGetData ($LastInputInfo, 2))> $idlesec
    Return $aRet[0] - DllStructGetData ($LastInputInfo, 2)
EndFunc

Func _IdleWaitCommit($idlesec)
    Local $iSave, $LastInputInfo = DllStructCreate ("uint;dword")
    DllStructSetData ($LastInputInfo, 1, DllStructGetSize ($LastInputInfo))
    DllCall ("user32.dll", "int", "GetLastInputInfo", "ptr", DllStructGetPtr ($LastInputInfo))
    Do
        $iSave = DllStructGetData ($LastInputInfo, 2)
        Sleep(200)
        DllCall ("user32.dll", "int", "GetLastInputInfo", "ptr", DllStructGetPtr ($LastInputInfo))
    Until (DllStructGetData ($LastInputInfo, 2)-$iSave) > $idlesec
    Return DllStructGetData ($LastInputInfo, 2)-$iSave
EndFunc

Func _TickToTimeString($iTicks)
    Local $iHours, $iMins, $iSecs, $sText = ''
    _TicksToTime ($iTicks, $iHours, $iMins, $iSecs)
    If $iHours Then $sText = $iHours & ' hours '
    If $iMins Then $sText &= $iMins & ' minute(s) '
    If $iSecs Then $sText &= $iSecs & ' second(s)'
    If $sText = '' Then $sText = 'less then second'
    Return $sText
EndFunc

 

Spoiler

Using OS: Win 7 Professional, Using AutoIt Ver(s): 3.3.6.1 / 3.3.8.1

AutoIt_Rus_Community.png AutoIt Russian Community

My Work...

Spoiler

AutoIt_Icon_small.pngProjects: ATT - Application Translate Tool {new}| BlockIt - Block files & folders {new}| SIP - Selected Image Preview {new}| SISCABMAN - SciTE Abbreviations Manager {new}| AutoIt Path Switcher | AutoIt Menu for Opera! | YouTube Download Center! | Desktop Icons Restorator | Math Tasks | KeyBoard & Mouse Cleaner | CaptureIt - Capture Images Utility | CheckFileSize Program

AutoIt_Icon_small.pngUDFs: OnAutoItErrorRegister - Handle AutoIt critical errors {new}| AutoIt Syntax Highlight {new}| Opera Library! | Winamp Library | GetFolderToMenu | Custom_InputBox()! | _FileRun UDF | _CheckInput() UDF | _GUIInputSetOnlyNumbers() UDF | _FileGetValidName() UDF | _GUICtrlCreateRadioCBox UDF | _GuiCreateGrid() | _PathSplitByRegExp() | _GUICtrlListView_MoveItems - UDF | GUICtrlSetOnHover_UDF! | _ControlTab UDF! | _MouseSetOnEvent() UDF! | _ProcessListEx - UDF | GUICtrl_SetResizing - UDF! | Mod. for _IniString UDFs | _StringStripChars UDF | _ColorIsDarkShade UDF | _ColorConvertValue UDF | _GUICtrlTab_CoverBackground | CUI_App_UDF | _IncludeScripts UDF | _AutoIt3ExecuteCode | _DragList UDF | Mod. for _ListView_Progress | _ListView_SysLink | _GenerateRandomNumbers | _BlockInputEx | _IsPressedEx | OnAutoItExit Handler | _GUICtrlCreateTFLabel UDF | WinControlSetEvent UDF | Mod. for _DirGetSizeEx UDF
 
AutoIt_Icon_small.pngExamples: 
ScreenSaver Demo - Matrix included | Gui Drag Without pause the script | _WinAttach()! | Turn Off/On Monitor | ComboBox Handler Example | Mod. for "Thinking Box" | Cool "About" Box | TasksBar Imitation Demo

Like the Projects/UDFs/Examples? Please rate the topic (up-right corner of the post header: Rating AutoIt_Rating.gif)

* === My topics === *

==================================================
My_Userbar.gif
==================================================

 

 

 

AutoIt is simple, subtle, elegant. © AutoIt Team

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0