I'm using Windows 7 Home Premium on a Sony VAIO VPC-F23BFX laptop.
The problem is that the caps lock key can only be turned off using the shift key.
In Control Panel's Regional Settings, it does not matter if I set it to turn off with the caps lock key or the shift key, it always expects the shift key.
I checked and the registry value for this option is being saved correctly.
I also tested with this utility and the scan codes being generated are:

OnKeyDown, Key code=20, Control keys=, Key name CAPS LOCK  
OnKeyup, Key code=20, Control keys=, Key name CAPS LOCK  

when pressing caps lock the first time (it turns on); and:

OnKeyup, Key code=20, Control keys=, Key name CAPS LOCK  

when pressing it a second time (it doesn't turn off).
If I then press shift, it generates:

OnKeyDown, Key code=16, Control keys=Shift{Left}, Key name SHIFT
OnKeyDown, Key code=20, Control keys=Shift{Left}, Key name CAPS LOCK
OnKeyup, Key code=20, Control keys=Shift{Left}, Key name CAPS LOCK
OnKeyup, Key code=16, Control keys=, Key name SHIFT

Maybe some program is messing with the keyboard events? (I'm not using AutoHotkey or anything similar).


After some investigation, I found the culprit: I had been using a custom keyboard layout that disabled dead keys, and apparently it also forced the usage of the Shift key to turn off caps-lock (ShiftLock as some call it).

I had tried switching to the default layout before and it didn't seem to work, now I realize that probably was because I had tested on an existing Notepad window instead of opening a new one.

Solution: I downloaded MSKLC and created a new layout based on that one but without enabling ShiftLock.

| improve this answer | |

Have you tried connecting a different keyboard and see if the results are the same? I'm thinking that perhaps the behavior could be hardware based.

Interesting note, the behavior described by the user, is identical to that of manual typewriters that I used to use a long time ago.....

| improve this answer | |
  • I tried with another keyboard and the result is the same. – ferow2k Dec 17 '12 at 20:29
  • That option exists specifically to mimic typewriters. – ferow2k Dec 17 '12 at 20:46

I don't know why this happened. But I could solve it with this workaround:

  1. Control Panel > Region and Language
  2. Keyboards and Languages Tab
  3. Change Keyboards...
  4. Advanced Key Settings
  5. Choose 'Press the SHIFT key' to turn off Caps Lock
  6. Apply
  7. Press the SHIFT key now. Caps should be off now.
  8. Again choose 'Press the CAPS LOCK key' to turn off Caps Lock.
  9. Apply
| improve this answer | |

Sounds like you may have sticky keys active, try pressing shift 5 times and see if that disables it.

| improve this answer | |
  • Sticky keys are disabled. – ferow2k Dec 17 '12 at 20:22

Based on this post from Microsoft answers forum,

Go to Control Panel > Regional and Language Options > Keyboards & Languages > Change Keyboard > Advanced Key Settings.

There you will find the setting to turn off Caps Lock with the SHIFT key, as it should be by default.

and turn on Press the CAPS LOCK key. If you couldn't find this setting, please use a virtual keyboard or use an utility tool like Caps Lock.

| improve this answer | |
  • This is a repeat of rpattabi's answer. Each answer should contribute another solution. – fixer1234 Nov 21 '15 at 7:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.