Sign in to follow this  
Followers 0
PhoenixXL

Idle Process UDF

2 posts in this topic

HEy!! Every1

I've made a UDF for a Func 2 Start whenever the computer gets Idle for the specified amount of time.........

Hope that u find it helpful...........

Any Modifications for betterment are welcomed.......... ;)

Enjoy!!

#cs #FUNCTION# =================================================================================================================
    Name...........: _GetIdleTime()

    Description ...: (Can Execute A Function) When The User Is Idle For Specified Amount Of Time

    Syntax.........: _GetIdleTime($Time,$Return=0)

    Parameters ....: $Time = The Amount Of Time to Check The User To be Idle....
      $Return = 1 Return The Func Immediately if The User is not Idle
      $Return = 0 Wait For The User To Get Idle For Specified Amount of Time and Then Return
     
    Returns........: Success = 0
      Failure(The User Wasnt Idle For The Specified Amount of Time , Applicable only When $Return=1) = 1
                  Unable To call User32.dll = -1
      Unable To create Dll Structure = -2

    Author ........: Abhishek

    Remarks .......: To Execute a Func When The User is Not Idle Call a Func in [Section]

    Example .......: _Example()
#ce =================================================================================================================
Func _GetIdleTime($Time,$Return=0)

Local $ISAVE, $LASTINPUTINFO = DllStructCreate("uint;dword"), $TRACE = 0
If $LASTINPUTINFO=0 Then Return -2

DllStructSetData($LASTINPUTINFO, 1, DllStructGetSize($LASTINPUTINFO))
DllCall("user32.dll", "int", "GetLastInputInfo", "ptr", DllStructGetPtr($LASTINPUTINFO))
If @error Then Return -1

While $TRACE <= $Time
  $ISAVE = DllStructGetData($LASTINPUTINFO, 2)
  Sleep(1000)
  DllCall("user32.dll", "int", "GetLastInputInfo", "ptr", DllStructGetPtr($LASTINPUTINFO))
  Switch Floor(DllStructGetData($LASTINPUTINFO, 2) / 1000) - Floor($ISAVE / 1000)
   Case 0
    $TRACE += 1 
   Case Else
    $TRACE = 0
    Switch $Return
     Case 0
      ;[Section] Stuff to do when the user is not Idle
     Case 1
      Return 1
    EndSwitch
  EndSwitch
WEnd
;Call($FuncName) ;Stuff to do when the user is Idle for the specified amount of time
Return 0
EndFunc
;  =================================================================================================================
_Example()
Func _Example()
Sleep(5000)
Switch _GetIdleTime(10,1)
  Case 0
   MsgBox(0,"Information",'The User Was Idle For 10 Secs.......')
  Case 1
   MsgBox(0,"Information","The User Wasn't Idle For 10 Secs.......")
EndSwitch
EndFunc
;  =================================================================================================================

My code:

PredictText: Predict Text of an Edit Control Like Scite. Remote Gmail: Execute your Scripts through Gmail. StringRegExp:Share and learn RegExp.

Run As System: A command line wrapper around PSEXEC.exe to execute your apps scripts as System (LSA). Database: An easier approach for _SQ_LITE beginners.

MathsEx: A UDF for Fractions and LCM, GCF/HCF. FloatingText: An UDF for make your text floating. Clipboard Extendor: A clipboard monitoring tool. 

Custom ScrollBar: Scroll Bar made with GDI+, user can use bitmaps instead. RestrictEdit_SRE: Restrict text in an Edit Control through a Regular Expression.

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

  • Similar Content

    • PhoenixXL
      By PhoenixXL
      Code


      #cs #FUNCTION# ==================================================================================================================== Name...........: _GetIdleTime() Description ...: (Can Execute A Function) When The User Is Idle For Specified Amount Of Time or Vice-Versa Syntax.........: _GetIdleTime($Time,$Return=0) Parameters ....: $Time = The Amount Of Time to Check The User To be Idle.... $Return = 1 Return The Func Immediately if The User is not Idle $Return = 0 Wait For The User To Get Idle For Specified Amount of Time and Then Return Returns........: Success = 0 Failure(The User Wasnt Idle For The Specified Amount of Time , Applicable only When $Return=1) = 1 Unable To call User32.dll = -1 Unable To create Dll Structure = -2 Author ........: Abhishek Remarks .......: To Execute a Func When The User is Not Idle Call a Func in [Section] Example .......: _Example() #ce =============================================================================================================================== Func _GetIdleTime($Time,$Return=0) Local $ISAVE, $LASTINPUTINFO = DllStructCreate("uint;dword"), $TRACE = 0 If $LASTINPUTINFO=0 Then Return -2 DllStructSetData($LASTINPUTINFO, 1, DllStructGetSize($LASTINPUTINFO)) DllCall("user32.dll", "int", "GetLastInputInfo", "ptr", DllStructGetPtr($LASTINPUTINFO)) If @error Then Return -1 While $TRACE <= $Time $ISAVE = DllStructGetData($LASTINPUTINFO, 2) Sleep(1000) DllCall("user32.dll", "int", "GetLastInputInfo", "ptr", DllStructGetPtr($LASTINPUTINFO)) Switch Floor(DllStructGetData($LASTINPUTINFO, 2) / 1000) - Floor($ISAVE / 1000) Case 0 $TRACE += 1 Case Else $TRACE = 0 Switch $Return Case 0 ;[Section] Stuff to do when the user is not Idle Case 1 Return 1 EndSwitch EndSwitch WEnd ;Call($FuncName) ;Stuff to do when the user is Idle for the specified amount of time Return 0 EndFunc ; =============================================================================================================================== _Example() Func _Example() Sleep(5000) Switch _GetIdleTime(10,1) Case 0 MsgBox(0,"Information",'The User Was Idle For 10 Secs.......') Case 1 MsgBox(0,"Information","The User Wasn't Idle For 10 Secs.......") EndSwitch EndFunc ; ===============================================================================================================================