Micha1405 Posted May 1, 2006 Share Posted May 1, 2006 If your keyboard have no leds to show status of numlock, Capslock and Scrolllock ! expandcollapse popup#include <GUIConstants.au3> #include <Constants.au3> Opt("TrayIconHide", 1) Global Const $VK_NUMLOCK = 0x90 Global Const $VK_SCROLL = 0x91 Global Const $VK_CAPITAL = 0x14 dim $x,$y $Apps="Keylocks" $Off=0x999999 $On=0x00ff00 _getWindowPos() $mainGui=GUICreate($Apps,100,48,$x,$y,BitOR($WS_OVERLAPPED,$WS_SYSMENU),BitOR($WS_EX_TOPMOST,$WS_EX_TOOLWINDOW)) $label1=GUICtrlCreateLabel("Num",3,10) $labelNum=GUICtrlCreateLabel(" ",5,0,15,8,$SS_SUNKEN) $labelCaps=GUICtrlCreateLabel(" ",35,0,15,8,$SS_SUNKEN) $label2=GUICtrlCreateLabel("Caps",33,10) $labelScroll=GUICtrlCreateLabel(" ",65,0,15,8,$SS_SUNKEN) $label3=GUICtrlCreateLabel("Scroll",63,10) _main() Func _main() GUISetState(@SW_SHOW) ;GUICtrlSetState($Apps,$GUI_disable) While 1 $msg = GUIGetMsg() Select case $msg=$GUI_EVENT_CLOSE _saveWindowPos() ExitLoop EndSelect _toggleKeys() sleep(10) WEnd exit EndFunc Func _toggleKeys() if _getNumLock() =0 then GUICtrlSetBkColor($labelNum,$Off) Else GUICtrlSetBkColor($labelNum,$on) EndIf if _GetScrollLock() =0 Then GUICtrlSetBkColor($labelScroll,$Off) Else GUICtrlSetBkColor($labelScroll,$on) EndIf if _GetCapsLock() =0 Then GUICtrlSetBkColor($labelCaps,$Off) Else GUICtrlSetBkColor($labelCaps,$on) EndIf EndFunc ;Code from gafrost ==> http://www.autoitscript.com/forum/index.php?showtopic=12056 Func _GetNumLock() Local $ret $ret = DllCall("user32.dll","long","GetKeyState","long",$VK_NUMLOCK) Return $ret[0] EndFunc Func _GetScrollLock() Local $ret $ret = DllCall("user32.dll","long","GetKeyState","long",$VK_SCROLL) Return $ret[0] EndFunc Func _GetCapsLock() Local $ret $ret = DllCall("user32.dll","long","GetKeyState","long",$VK_CAPITAL) Return $ret[0] EndFunc func _saveWindowPos() $pos=WinGetPos ( $Apps ) if not @error Then IniWrite(@ScriptDir&"\Keylocks.ini","Position","x",$pos[0]) IniWrite(@ScriptDir&"\Keylocks.ini","Position","y",$pos[1]) EndIf EndFunc Func _getWindowPos() $x=IniRead(@ScriptDir&"\Keylocks.ini","Position","x",@DesktopWidth -100) $y=IniRead(@ScriptDir&"\Keylocks.ini","Position","y",@DesktopHeight-80) EndFunc My TrayToolBar Link to comment Share on other sites More sharing options...
rakudave Posted May 1, 2006 Share Posted May 1, 2006 nice! Pangaea Ruler new, UDF: _GUICtrlCreateContainer(), Pangaea Desktops, Pangaea Notepad, SuDoku, UDF: Table Link to comment Share on other sites More sharing options...
RazerM Posted May 1, 2006 Share Posted May 1, 2006 that is very slick! My Programs:AInstall - Create a standalone installer for your programUnit Converter - Converts Length, Area, Volume, Weight, Temperature and Pressure to different unitsBinary Clock - Hours, minutes and seconds have 10 columns each to display timeAutoIt Editor - Code Editor with Syntax Highlighting.Laserix Editor & Player - Create, Edit and Play Laserix LevelsLyric Syncer - Create and use Synchronised Lyrics.Connect 4 - 2 Player Connect 4 Game (Local or Online!, Formatted Chat!!)MD5, SHA-1, SHA-256, Tiger and Whirlpool Hash Finder - Dictionary and Brute Force FindCool Text Client - Create Rendered ImageMy UDF's:GUI Enhance - Enhance your GUIs visually.IDEA File Encryption - Encrypt and decrypt files easily! File Rename - Rename files easilyRC4 Text Encryption - Encrypt text using the RC4 AlgorithmPrime Number - Check if a number is primeString Remove - remove lots of strings at onceProgress Bar - made easySound UDF - Play, Pause, Resume, Seek and Stop. Link to comment Share on other sites More sharing options...
Valuater Posted May 1, 2006 Share Posted May 1, 2006 cute! 8) Link to comment Share on other sites More sharing options...
SlowCoder74 Posted May 16, 2012 Share Posted May 16, 2012 I know this is only 6 years late ... I needed a small utility that can quickly tell if the caps, num and scroll lock keys were on. I decided to modify Micha1405's code, rather than start from the ground up. I didn't want the GUI to always be visible, but it needed to be easily found. Therefore, here is my modified version of his program. The major changes are: - The GUI is not immediately visible. - Tray icon is re-enabled. - Hovering over the icon shows a quick tool-tip of the key states. - Left-click and hold on the icon pops up the GUI. - Right-click allows the program to be terminated. expandcollapse popup;Original code by Micha1405 (http://www.autoitscript.com/forum/topic/25459-for-keyboards-without-leds-for-locks) ;Modified by SlowCoder 05/16/2012 ;Main modifications: ;- GUI is hidden on startup. ;- Tray icon is re-enabled. ;- Hovering over the icon shows a quick tool-tip of the key states. ;- Left-click and hold on the icon brings up the GUI. ;- Right-click allows the program to be terminated. #include <GUIConstantsEx.au3> #include <Constants.au3> #include <WindowsConstants.au3> #include <StaticConstants.au3> opt("TrayMenuMode",1) Global Const $VK_NUMLOCK = 0x90 Global Const $VK_SCROLL = 0x91 Global Const $VK_CAPITAL = 0x14 $Apps="KeyStat" $Off=0x999999 $On=0x00ff00 $x = @DesktopWidth - 100 $y = @DesktopHeight - 100 $mainGui=GUICreate($Apps,100,48,$x,$y,BitOR($WS_OVERLAPPED,$WS_SYSMENU),BitOR($WS_EX_TOPMOST,$WS_EX_TOOLWINDOW)) $label1=GUICtrlCreateLabel("Num",3,10) $labelNum=GUICtrlCreateLabel(" ",5,0,15,8,$SS_SUNKEN) $labelCaps=GUICtrlCreateLabel(" ",35,0,15,8,$SS_SUNKEN) $label2=GUICtrlCreateLabel("Caps",33,10) $labelScroll=GUICtrlCreateLabel(" ",65,0,15,8,$SS_SUNKEN) $label3=GUICtrlCreateLabel("Scroll",63,10) GUISetState(@SW_HIDE) ;set up tray icon menu $TrayExit = TrayCreateItem("Exit") TraySetClick (16) ;set so menu only shows when right-clicking _main() Func _main() While 1 $msg = GUIGetMsg() Switch $msg case $gui_event_close ExitLoop EndSwitch switch TrayGetMsg() case $TRAY_EVENT_PRIMARYDOWN GUISetState(@sw_show,$mainGui) case $TRAY_EVENT_PRIMARYUP GUISetState(@sw_hide,$mainGui) case $TrayExit Exit EndSwitch _toggleKeys() sleep(100) WEnd exit EndFunc Func _toggleKeys() $ToolTipText = "" if _getNumLock() =0 then GUICtrlSetBkColor($labelNum,$Off) $ToolTipText = "Num=OFF" Else GUICtrlSetBkColor($labelNum,$on) $ToolTipText = "Num=ON" EndIf if _GetCapsLock() =0 Then GUICtrlSetBkColor($labelCaps,$Off) $ToolTipText = $ToolTipText & ",Caps=OFF" Else GUICtrlSetBkColor($labelCaps,$on) $ToolTipText = $ToolTipText & ",Caps=ON" EndIf if _GetScrollLock() =0 Then GUICtrlSetBkColor($labelScroll,$Off) $ToolTipText = $ToolTipText & ",Scroll=OFF" Else GUICtrlSetBkColor($labelScroll,$on) $ToolTipText = $ToolTipText & ",Scroll=ON" EndIf ; TraySetToolTip($ToolTipText) EndFunc ;Code from gafrost ==> http://www.autoitscript.com/forum/index.php?showtopic=12056 Func _GetNumLock() Local $ret $ret = DllCall("user32.dll","long","GetKeyState","long",$VK_NUMLOCK) Return $ret[0] EndFunc Func _GetScrollLock() Local $ret $ret = DllCall("user32.dll","long","GetKeyState","long",$VK_SCROLL) Return $ret[0] EndFunc Func _GetCapsLock() Local $ret $ret = DllCall("user32.dll","long","GetKeyState","long",$VK_CAPITAL) Return $ret[0] EndFunc Link to comment Share on other sites More sharing options...
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