Code: Select all
#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#cs
Lock State Created By: AutoHotKey - dmg & AutoIt - guinness
Last Textual Changes In This Script: 3rd June 2011
The Program Can Be Run By Selecting: <Lock State.exe>
Thanks To The Following...
Icon -->
Help --> Thanks to dmg for the original idea.
#ce
#AutoIt3Wrapper_Icon=Lock State.ico
#AutoIt3Wrapper_Outfile=LockState.exe
#AutoIt3Wrapper_UseUpx=Y
#AutoIt3Wrapper_Res_Description=Check the state of CapsLock, NumLock & ScrollLock.
#AutoIt3Wrapper_Res_Fileversion=0.0.0.1
#AutoIt3Wrapper_Res_LegalCopyright=nocopyright (C) 2011
#AutoIt3Wrapper_Res_Language=2057
#AutoIt3Wrapper_Res_Field=Website|
#AutoIt3Wrapper_Res_Field=E-Mail|comment at the website
#AutoIt3Wrapper_UseX64=N
#AutoIt3Wrapper_Run_Obfuscator=Y
#Obfuscator_Parameters=/SF /SV /OM /CS=0 /CN=0
#AutoIt3Wrapper_Res_requestedExecutionLevel=asInvoker
#AutoIt3Wrapper_OutFile_Type=exe
#include <Constants.au3>
Opt("TrayMenuMode", 3)
Global $iExit, $iFreeze, $iIsFrozen = 0, $sFilePrevious
$iFreeze = TrayCreateItem("Freeze")
TrayCreateItem("")
$iExit = TrayCreateItem("Exit")
While 1
If $iIsFrozen = 0 Then
_Monitor($sFilePrevious)
EndIf
_ReduceMemory()
Switch TrayGetMsg()
Case $iExit
Exit
Case $iFreeze
If $iIsFrozen Then
$iIsFrozen = 0
TrayItemSetState($iFreeze, $TRAY_UNCHECKED)
Else
$iIsFrozen = 1
TrayItemSetState($iFreeze, $TRAY_CHECKED)
EndIf
EndSwitch
WEnd
Func _GetKeyState($vKey)
Local $aReturn = DllCall('user32.dll', 'int', 'GetKeyState', 'int', $vKey)
If @error Then
Return SetError(1, 0, 0)
EndIf
Return BitAND($aReturn[0], 1)
EndFunc ;==>_GetKeyState
Func _Monitor(ByRef $sFilePrevious)
Local $aArray[4][2] = [[3, 2],[0x90, 1],[0x14, 2],[0x91, 3]]
Local $sFile = ""
For $A = 1 To $aArray[0][0]
If _GetKeyState($aArray[$A][0]) Then
$sFile &= $aArray[$A][1]
EndIf
Next
If $sFile = "" Then
$sFile = 0
EndIf
If $sFile <> $sFilePrevious Then
$sFilePrevious = $sFile
TraySetIcon(@ScriptDir & "\icons\" & $sFile & ".ico")
EndIf
EndFunc ;==>_Monitor
Func _ReduceMemory()
Local $aReturn = DllCall("psapi.dll", "int", "EmptyWorkingSet", "long", -1)
If @error = 1 Then
Return SetError(1, 0, 0)
EndIf
Return $aReturn[0]
EndFunc ;==>_ReduceMemory