Kiesp Posted November 13, 2007 Posted November 13, 2007 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
alex OF DEATH Posted November 13, 2007 Posted November 13, 2007 (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 November 13, 2007 by alex OF DEATH
MrCreatoR Posted November 13, 2007 Posted November 13, 2007 i made this program and it takes alot of the cpuPerhaps you should use Sleep(10) inside your main loop. Here is one method to check idle: expandcollapse popup#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 Russian Community My Work... Spoiler Projects: 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 ProgramUDFs: 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 Examples: 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 ) * === My topics === * ================================================== ================================================== AutoIt is simple, subtle, elegant. © AutoIt Team
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now