Sign in to follow this  
Followers 0
ymn

CapsLock acts strange in hotkeyset

7 posts in this topic

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?

Share this post


Link to post
Share on other sites



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

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
Share on other sites

ymn,

I get just the single function call with the "{CAPSLOCK}" key when I run your code. :D

M23

P.S. Unless you want to cook your CPU, I suggest you add a Sleep(10) in your idle loop. :huh:


Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______My UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
Share on other sites

ymn,

Yes, really, or I would not have said so. :huh:

I have tested on XP and Vista on different machines. Have you shown all the code - perhaps there is something else in there. :D

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._______My UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites

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.

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