ymn Posted June 25, 2012 Share Posted June 25, 2012 When I run the following test code: HotKeySet("{CAPSLOCK}", 'myFunc') HotKeySet("{ESC}", 'myFunc') HotKeySet("{BS}", 'myFunc') HotKeySet("{TAB}", 'myFunc') HotKeySet("c", 'myFunc') HotKeySet("d", 'myFunc') While 1 WEnd Exit Func myFunc() Send("a") EndFunc All of the keys act as expected, except Capslock. It keeps repeatedly calling the function for some reason. Is there something I'm missing? Link to comment Share on other sites More sharing options...
stormbreaker Posted June 25, 2012 Share Posted June 25, 2012 From help file:When you set a hotkey, AutoIt captures the key-press and does not pass it on to the active application, with one exception: the Lock keys (NumLock, CapsLock, and ScrollLock) still toggle their respective state! ---------------------------------------- :bye: Hey there, was I helpful? ---------------------------------------- My Current OS: Win8 PRO (64-bit); Current AutoIt Version: v3.3.8.1 Link to comment Share on other sites More sharing options...
ymn Posted June 25, 2012 Author Share Posted June 25, 2012 From help file:I'm not sure if that really tells me much. Why will capslock repeatedly call the function only whenever I try to Send() some other key? Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted June 25, 2012 Moderators Share Posted June 25, 2012 ymn,I get just the single function call with the "{CAPSLOCK}" key when I run your code. M23P.S. Unless you want to cook your CPU, I suggest you add a Sleep(10) in your idle loop. 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 Link to comment Share on other sites More sharing options...
ymn Posted June 28, 2012 Author Share Posted June 28, 2012 M23, Really? I just tried it on a 2nd computer, and I got the exact same result (both are running the latest version as of autoit). The capslock LED also flashes wildly (which is to be expected since it's being called constantly) Also, thanks for the tip about Sleep(). I didn't know that. Is 10 an arbitrary number? Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted June 29, 2012 Moderators Share Posted June 29, 2012 ymn,Yes, really, or I would not have said so. I have tested on XP and Vista on different machines. Have you shown all the code - perhaps there is something else in there. As to the Sleep(10) - the minimum value is set by the system very low down and is usually about 10-12 ms. So anything less than 10ms will still give you that length of Sleep. monoceres posted a "nanosecond Sleep" UDF somewhere if you really need to get that accurate. Sleep(0) is a special case which just gives up the next timeslice.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 Link to comment Share on other sites More sharing options...
ymn Posted July 3, 2012 Author Share Posted July 3, 2012 I could've sworn I'd tried this much earlier, but today, it worked after adding Opt("SendCapslockMode", 0) before everything else. It completely fixes the problem. 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