How do I disable the CAPS LOCK function WITHOUT disabling the key or remapping it?

I was looking for a way to disable the CAPS LOCK functionality in windows. Unfortunately all solutions are about remapping it to NOTHING or other keys. I am a gamer and want to use the CAPS LOCK key for in-game function but I don't want Windows to CAPITALIZE everything after I use caps lock (for example using CAPS lock for changing target in an space FPS which uses WASD to fly).

Example:

CAPS LOCK is mapped to "Change Target" in my gam

I press CAPS Lock, Windows from now on will capitalize all my typed text

I shoot my target but I need assistance, so I enter the chat now I want to type but all the letters are capitalized

So to avoid capitalized text I again press CAPS LOCK but then my target is changed, however now I cn type with normal text.

So is there any trick to disable capitalizing functionality in Windows without having to remap the CAPS LOCK key to something else?

In short: I want it to be detected by games etc without enabling capitalized text.


There is one way to achieve the result you want, but it's not ideal. You could remap actual keys so capslock state does not affect them. In other words, to ignore capslock modifier. This works (in fact I'm writing this with capslock ON and modified keyboard - but there is a glitch - if effectively also disables producing capital letters with shift. While there is possibility to make a separate mapping for that, it's not recognized by any programs I tried (with the exception of layout mapper tester itself). So whenever I need to put a capital, I have to switch to normal keyboard layout (via ctl+alt+digit shortcut) - not super convenient, but it does not change caps state!

I've used Microsoft keyboard layout Creator 1.4 to build the layout.

Some background information on how the keyboard evens are actually processed (to add to your discussion with soandos: (simplified):
when a key is pressed it produces a scancode. This scancode is processed by windows (keyboard driver) and translated into virtual key. This virtual key (value) is then sent to application. For capslock VC_CAPITAL is being sent (and interpreted by your game). Virtual code is not character key yet. After receiving VK_CODE (and maybe reacting somehow to it) application will ask OS for actual character code. Now what code is returned to application depends on several factors OS keeps track of - capslock status being one of them. That's why capslock works across apps - as it's being tracked by OS and not (only) an app. More here