Jump to content

Detecting mouse inactivity with an AdlibRegister function.


Raizeno
 Share

Recommended Posts

Greetings people !

Can you guys help me out im trying to make an adlib function that detects if mouse pointer has been in the same location for more than 10 seconds . The thing is it has to be an adlibregister function so that my script continues to run in paralel and not interupt the main script for to long .

I thought adlibregister would be the best solution to build this but is there any other way to get mouse idle duration or something like that from the system ? Or any other way you might know ?

Link to comment
Share on other sites

Are you trying to detect idle time or just mouse movement?

im trying to detect if the mouse is not moving for more than 10 seconds so that I can send some commands that will unstuck my script .

Edited by Raizeno
Link to comment
Share on other sites

Maybe something like:

HotKeySet("{ESC}", "_Exit")

Global $iTimer = 0

AdlibRegister("_MouseIdle")

While 1
    Sleep(10)
WEnd

Func _MouseIdle()
    Local $iSec = 10
    $aLastPos = MouseGetPos()
    Sleep(1000)
    $aCurrPos = MouseGetPos()
    If $aLastPos[0] = $aCurrPos[0] And $aLastPos[1] = $aCurrPos[1] Then $tStill = TimerInit()
    While $aCurrPos[0] = $aLastPos[0] And $aCurrPos[1] = $aLastPos[1]
        If $iTimer = $iSec Then
            ConsoleWrite("Mouse in idle for..." & $iSec & " sec! IDLE TIME!" & @CR)
            $iTimer = 0
        EndIf
        If TimerDiff($tStill) > 1000 Then
            $aCurrPos = MouseGetPos()
            $tStill = TimerInit()
            $iTimer += 1
            If $iTimer <> $iSec Then ConsoleWrite("Mouse in idle for..." & $iTimer & " sec" & @CR)
        EndIf
        Sleep(10)
    WEnd
    ConsoleWrite("Mouse is moving: X: " & $aCurrPos[0] & " Y: " & $aCurrPos[1] & @CR)
    $iTimer = 0
EndFunc   ;==>_MouseIdle

Func _Exit()
    Exit
EndFunc   ;==>_Exit
Edited by johnmcloud
Link to comment
Share on other sites

Check out _IdleTime() in my signature.

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Link to comment
Share on other sites

 

Maybe something like:

HotKeySet("{ESC}", "_Exit")

Global $iTimer = 0

AdlibRegister("_MouseIdle")

While 1
    Sleep(10)
WEnd

Func _MouseIdle()
    Local $iSec = 10
    $aLastPos = MouseGetPos()
    Sleep(1000)
    $aCurrPos = MouseGetPos()
    If $aLastPos[0] = $aCurrPos[0] And $aLastPos[1] = $aCurrPos[1] Then $tStill = TimerInit()
    While $aCurrPos[0] = $aLastPos[0] And $aCurrPos[1] = $aLastPos[1]
        If $iTimer = $iSec Then
            ConsoleWrite("Mouse in idle for..." & $iSec & " sec! IDLE TIME!" & @CR)
            $iTimer = 0
        EndIf
        If TimerDiff($tStill) > 1000 Then
            $aCurrPos = MouseGetPos()
            $tStill = TimerInit()
            $iTimer += 1
            If $iTimer <> $iSec Then ConsoleWrite("Mouse in idle for..." & $iTimer & " sec" & @CR)
        EndIf
        Sleep(10)
    WEnd
    ConsoleWrite("Mouse is moving: X: " & $aCurrPos[0] & " Y: " & $aCurrPos[1] & @CR)
    $iTimer = 0
EndFunc   ;==>_MouseIdle

Func _Exit()
    Exit
EndFunc   ;==>_Exit

yeah nice ideea but i cant have something with sleep in an adlibregister() cause that will make my script pause forever

Link to comment
Share on other sites

Check out _IdleTime() in my signature.

Thank you very much Guinness ! After looking trought that post it seem that all i needed was something like

#include <Timers.au3>
_Timer_GetIdleTime ( )


adlibregister("idle")

 func idle()
    $iIdleTime = _Timer_GetIdleTime()
    $iIdleTime = $iIdleTime / 1000
    If $iIdleTime >= 10 Then
        ConsoleWrite('$iIdleTime >= 10 '& @SEC &@CRLF)
        Enter()
     EndIf
endfunc
Edited by Raizeno
Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...