Moderators Melba23 Posted July 8, 2009 Moderators Posted July 8, 2009 Info, GaryFrost produced the code here to do just that. You need to search a bit harder. ;-) M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
Authenticity Posted July 8, 2009 Posted July 8, 2009 Yes you can use GetKeyState and check if it's least-significant bit is set or not which means, toggle or not toggled respectively. expandcollapse popup#include <WinAPI.au3> Global Const $VK_CAPITAL = 0x14 Global Const $VK_NUMLOCK = 0x90 Global Const $VK_SCROLL = 0x91 Global $avVKs[3] = [$VK_CAPITAL, $VK_NUMLOCK, $VK_SCROLL] Global $avKeys[3] = ["Caps Lock", "Num Lock", "Scroll Lock"] Global $tKeys For $i = 1 To 2 $tKeys = _WinAPI_GetKeyboardState() For $j = 0 To UBound($avVKs)-1 If BitAND(1, DllStructGetData($tKeys, 1, $avVKs[$j]+1)) Then ConsoleWrite("+ " & $avKeys[$j] & " is toggled." & @CRLF) Else ConsoleWrite("! " & $avKeys[$j] & " is not toggled." & @CRLF) EndIf Next ConsoleWrite(@CRLF) Send("{NUMLOCK toggle}{CAPSLOCK toggle}{SCROLLLOCK toggle}") Next Func _WinAPI_GetKeyboardState() Local $tByteArray, $pByteArray Local $aRet $tByteArray = DllStructCreate('ubyte[256]') $pByteArray = DllStructGetPtr($tByteArray) $aRet = DllCall('user32.dll', 'int', 'GetKeyboardState', 'ptr', $pByteArray) If @error Or $aRet[0] = 0 Then Return SetError(1, 0, 0) Return $tByteArray EndFunc
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