SharpKeys is a Registry hack that is used to make certain keys on a keyboard act like other keys. For example, if you accidentally hit Caps Lock often, you could use this utility to map Caps Lock to a Shift key or even turn it off completely. This official release includes support for up to 104 mappings, an extensive list of available keys, and a “Type Key” option to help when managing mappings. As it relies on internal support within Windows NT, Windows 2000, Windows XP, Windows Server 2003, Windows Vista, Windows 7, Windows 8, or Windows 10 you must be running one of these OS’s for this Registry hack to work.
With the move to version 3.6, I’ve recompiled the most recent code that has been posted to the GitHub project. It includes some bug fixes and a couple of text changes; I encourage anyone interested in working on the code to visit http://www.github.com/randyrants/sharpkeys for more project changes.
Download SharpKeys 3.6: MSI | ZIP | requires .NET Framework 4.0
if it is possible to remap combination of keys to another key. EG. left and right control to context menu key?
No, per the FAQ: only whole keys get remapped.
I tried to use Sharpkeys to remap keys on a US keyboard, to the last letters of the swedish alphabeth, å, ä & ö .
No success and ended up buying Text Paster from Anysoft..
Is there a way to do it?
Nice software anyway and thanks for sharing it free.
Not unless there is a keyboard layout that has these keys available without modification. Meaning that ä is available without SHIFT, ALT, CTRL or even ALT+GR. It needs to be a stand alone key.
Terry
Not sure where else to post this…
Use SharpKeys to remap common keys for Win 7. Great hack. ;-)
Bought a UNICOMP Model M knock-off with German keyboard layout. Tried to remap the ALT_GR (RIGHT_ALT) key using the ‘Type Key’ option but Sharpkeys complained it does not understand this key. Turns out the number assigned by Unicomp to ALT_GR is E038 while the correct number is E0_38. Looked at the menu of available keys in Sharpkeys and found RIGHT_ALT is E0_38. So I selected this from the list and now have the RIGHT_WIN key remapped as desired.
(Why would I want to do this ? The Unicomp keyboard has a slightly different physical layout for the keys on the right hand side of the space bar. I was so used to finding the ALR_GR as the first key to the right of the space bar, I wanted to swap the RIGHT_WIN and ALT_GR keys.)
In the process, I found a blog entry that mentioned ‘reverse tilt’ for a keyboard. Tried it and it is great (even if I am not a pure touch typist.)
Terry
:) Glad it worked for ya!
Hi
I tried to install Sharpkeys but Windows Smartscreen blocked it. Generally I have a problem with national characters on my keyboard.
I am prom Poland and we use Polish Programmers default windows layout. In this layout when the combination of alt gr + letter is used – we get our national characters.
Suddenly yesterday this stopped to work for for letters a and s – but still works for other letters. Also it does not look like hot key assigment as nothing happens after using this combination out of applications.
Nothing new was installed on the device prior to this problem. Mstf t update 1709 is not installed.
Will your sharpkeys help to locate the problem?
Rgds
Peter
Can your
Not much I can do for Smartscreen – I haven’t had that happen on Edge so I’m not sure what’s going on. That said, SharpKeys won’t be able to help with anything that involves a modifier key like Alt, AltGr, or Ctrl – it only remaps whole keys. You might want to investigate AutoHotKeys or some other active keyboard mappers. Or you might want to confirm that the correct keyboard layout was selected after you updated Windows.
It is sad. It can’t remap a mouse click. I have a broken mouse. While I clicked middle button, it response as I clicked all middle-left, middle and middle-right click. I want to prevent that but I can’t.
Check out XMouse – that should let you remap mouse buttons.
Can it remap mouse buttons to keyboard?
Nope. Keyboard only.
Can you add a feature to map qwerty to dvorak and other keyboard styles+
No, I wouldn’t be interested in doing that. Given that Windows 10 has a whole collection of keyboard layouts available to it, I would leave it to that.
I bough a $12 keyboard with a goofy PLUM layout on ebay, moved the keycaps around and used your software to remap the keys. Really worked a treat, thanks for all your hard work!
SharpKeys allows me to use Windows with BootCamp on my MacBook Pro and I love the hell out of it. Since I have to reinstall Windows 10, can you kindly tell me if there is a reghistry entry I can save down and just install with the new Windows install so I don’t have to go through the mapping process over again? I use a screen reader and doing the mapping manually is a bit tedious. Thanks for any ideas. — Don Barrett
Here is the registry value you want.
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout\Scancode Map
Thanks Ken; very appreciative for your assist!!!
Just wanted to say thanks. The Surface Pro 4 type cover doesn’t come with a right CTRL key, so I remapped the list button for it instead. Small change; big help. Much appreciated!
Glad it works for you!
Hello!
I just discovered your software, and I am wondering if it’s able to do the following:
1. In the upper left corner of my keyboard, right below the ESC key, there is a key called §, and the same key can also type ½ if pressed while holding SHIFT. I want to somehow customize this key, so while holding the FN key and pressing the key, the vertical bar symbol | will be typed. Can SharpKeys do this, and if so, how? Sorry, I’m not very good with computers.
2. I also want to add to two other keys on my keyboard, and I want these symbols accessed (typed) when pushing the said keys while holding down ALT GR. Can SharpKeys do this? Is there ANY way to do it??
Any help appreciated!
Edit: Under section “2”, what I meant to say was I want to add “left backet” and “right bracket” (somehow the bracket symbols were automatically removed when I posted the comment). I want to add left bracket to one of the letter keys on my keyboard, and the right bracket to another letter key on my keyboard. Then I want the brackets to be accessed/typed while holding down the ALT GR key. Can this be done with SharpKeys, and if so, how?
It cannot. Only whole keys are remapped: modified keys (trying to remap SHIFT+3 as an example) is not supported by Windows, which is what does the remapping. You can check something more active like AutoHotKeys.
Wanted to remap my Project key (as in which monitor to project to) on my Lenovo Yoga 920). (This is the same key as the F10 key, but without the Fn key pressed.) When I captured the keystroke it reported, “Special: Left Windows (E0_5B)”, followed by a message, “You’ve entered a key that SharpKeys doesn’t know about.” Since I just installed the latest version, I thought I would report this to you to perhaps be included in the next one. It would be awesome to have this available.
Likely a key that is getting intercepted by either hardware or keyboard driver which prevent Windows from getting the keystroke so it can’t remap it.
I have a DELL XPS13 laptop where the numpad “overlay” on the normal keys does not support the alt Numeric keys on numpad procedure, eg Alt 0149 is a bullet. Would your software be able to fix this
More than likely not: the Registry key that this exposes is about remapping entire keys rather than trying to handle modified keys.
Dear Randy,
Thanks for this opensource project. I recently purchased a Wesopro T6 Airmouse. I quickly discovered that not all keys are working. So i started to write my own keymapper but quickly found an already complete sourcecode, great! :-)
However it turns out that the keys i want to remap or not yet supported by you software. Therefore i would like to know how to add this to your list?
I debugged the nCode and this are the results:
16777217 = Homekey – not recognized- Now opens Edge. More info {msg=0x100 (WM_KEYDOWN) hwnd=0xb0092 wparam=0xac lparam=0x1000001 result=0x0}
23920641 = 4 lined icon, left form homekey – Recognized as E0_6D. More info {msg=0x100 (WM_KEYDOWN) hwnd=0xb0092 wparam=0xb5 lparam=0x16d0001 result=0x0}
16777217 = Go back arrow icon, right from homekey – not reconized. More info {msg=0x100 (WM_KEYDOWN) hwnd=0xb0092 wparam=0xa6 lparam=0x1000001 result=0x0}
There are also other, standard multimedia, keys that are not triggered by your keyboardhook. Keys like next and previous arrow and volume up/down
Awaiting your reply.
Hi – these are not the scan code values that the Registry key uses to remap keys and even so, there are no standard scan codes for multimedia keys. Some of these media keys get trapped by a keyboard drive or – as is often the case with volume – by the hardware itself. The information you’ve captured is definite the message that Win32 is passing around but the Registry key lives in a higher Ring which is not a one to one mapping. If you want to talk to other devs working on the app, please visit GitHub.
Hi, is it possible to lock Fm on? I whant to use F1-F12 as standard.
Best regards Lasse
Not likely since the F-Lock functionality is often hardware-based. You might want to check your BIOS settings or driver settings on your laptop.
Hey Randy, thank you for writing this simple to use program. I used to go into the registry and do this on my own but Win 10 made it difficult to do this so your program solved that issue!! I was wondering, I have always remapped my keyboard to make the Right Ctrl to be the Delete key. Most of my life has been spent on laptop keyboards and the tiny delete key next to the other small keys was a hassle. I would like to keep the default Del key mapped and add the Right Ctrl at the same time. Is that possible? I have tried a few times and seems like it’s a direct swap and not an additional key.
I’m not sure I follow. If you remap the Del key to the Right Ctrl key, the Del key will still keep it’s functionality. I often make the Right Ctrl key act like Left Windows and the Left Windows key still works fine.
Thanks Randy. On my Bluetooth keyboard from Dell that is not working. The remapping takes away the functionality of the original Delete key and reassigns it to the Right Ctrl key. I will remove the mapping, reboot and try again and let you know. But still, THANKS. This has worked on every other keyboard I’ve ever used.
Marty B.
And an update….. I tried again to remap the Del Key to the Right Ctrl and again no luck. I can change the mapping but I cannot have the 2 keys perform the Del function simultaneously. Oh well, this has worked on every other machine I’ve used it on. I guess this particular Del BT has a mind of its own.
Thanks Randy!!
And Finally!!! I guess I am rusty at Sharp Keys, I was mapping the Right Ctrl TO the Del Key and not vice versa. But it’s fixed now and working perfectly!!
hi and thx for this nice program
I’d like to remap the ‘@’ key to a different combination of keys, like ctrl + A or in place of Caps Lock. I can do it in Microsoft Office but not in all my programs. Does your software allow to do that and if not is there some that does?
Nope: there’s no @ key, at least not on a US keyboard – only Shift+2 – and Windows only remaps the whole key at a time. AutoHotKeys, which is a more active tool, may be able to help.
Hey, is there a “Backlight Keyboard” key please ?
Thank you.
Sorry but not even likely: that key will get sent to hardware directly and never make it to Windows to be remapped.
Hello randy,
Thanks for making this tool. I’m using the apple wireless keyboard (first gen, with the AA battery one) on windows 7. I’m now able to remap the right command key (originally acts as right windows key) to the “delete” function. However, SharpKeys doesn’t recognize the “eject” and fn button on the keyboard, and i wonder if it is on a hardware based level or what? Anyway, I’m more than happy to finally able to map F7 ~ F12 keys to work as the media control keys on a regular mac. Really appreciate the tools.
Hi,
Software looks great but I can’t remap the keys I want to remap. https://www.trust.com/en/product/21392-classicline-wired-keyboard-and-mouse
It does not recognise the poweroff, sleep and wake button (above printscreen/scrollock/pasuebreak).
Is this possible to solve?
Not really because it sounds like Windows isn’t getting the scancodes from these keys so it has no way to remap them. Might want to try AutoHotKeys which is a more active key remapper.
Hi, It is not working for external keyboard in laptop. When I remapped “escape” key “1” key. Then I press “1” in my laptop and then it properly work. When I press “1” in my external keyboard, then it also works. But major problem is when I press “Escape” key in external keyboard, then it not working. It pressed “Escape”!
This problem effected me when I play Need For Speed The Run. “Escape” key is most essential key for this game to go back, Pause, Main menu bring etc. But “Escape” of My laptop Keyboard is not working. So I mapped “escape” key to “1” key. But it not working in the game. I also want to explain that it is working in other game.
If it worked for one keyboard that’s connected it should work for all of them. Have you rebooted after plugging in the external keyboard? Might want to post this over at the forum at GitHub too, in case someone else has seen this. In all cases, SharpKeys isn’t mapping the key: it’s just exposing a Registry key that allows Windows to remap it.
How to map right click?
Thanks, Randy – terrific utility. I have a small left shift key on my laptop, so mapped the one beside it (didn’t need it anyway) to also be left shift.
hi there love this utility. any chance you could include a way to save keymaps as separate profiles? I use several diff gamepads and have to re-do each keymap when i swap to a diff one. i definitely could see myself donating some $ if saved profiles could be implemented. i understand this would still require a reboot of the comp to implement the loaded profile, thats fine. It would still save me a lot of time.
Hi. Sharpkeys is great but my keyboard is now messed up. I just tried to edit the CTRL to become “Q” so its easier for my fingers. But now when I key in the letter “O” it shows “6” and the “L” is “3”. How do I restore my keyboard mapping to its original/default?
Hi – you can open SharpKeys, remove all of the entries there, Save it back to the Registry, and reboot. That should remove all of the remappings.
I remapped my Esc key with SharpKeys. It didn’t work so I wanted to go back but now the Esc key doesn’t work anymore. There is no map listed with Sharpkey
If there’s no key mapping listed in the SharpKey’s list and you’ve to the Registry and rebooted, then there’s nothing that SharpKeys is doing. All of the remapping is done by Windows and SharpKeys is simply allowing you to edit the Registry key that Windows is using.
I wanted to swap my I and K keys to F3&F4 after adding it all it still doesn’t works
Hello,
I’m hoping you can help me. After a coffee spill my FN toggle key (microsoft surface) stopped working. This is a useful key for me not only to turn on/off the function keys, but also when used with the arrows for moving quickly through code/text. I tried using SharpKeys to map”Special: Wake (or FN) (E0_63)” to the “Special: Caps Lock (00_3A)”, as I don’t use the latter very often. However it does not seem to do the trick… Is there any way to do what I want?
Thank you
Got the same problem on my Lenovo its doesnt seem to recognize my Fn key so I can swap it with another key
thank you very much I had the shift and escape key was not working but with your software, it’s awesome I don’t know how to thank you I will donate thank you very much
regards
Hi Randy,
I’m trying to remap a horribly placed FN key on a tablet keyboard by switching FN and ctrl
but the program doesn’t seem to recognize FN. Anything I could do?
Thanks!
Same here
PUBG Game Ban for Sharpkeys :(
Hi Randy,
Sharpkeys is a brilliant little program, however my PUBG game account got banned for using it.
All I did was to remap my scroll-lock to N, as my N key on my keyboard was faulty. I replaced the N switch, but that didnt work, so i connected it to the scroll-lock key.
It would be nice, if you put some warnings on your download page. Something like, dont use this program, if youre playing competitive online games. It will detect as a hack, cheat or restricted program.
Cheers, David
Um, so you’re asking me to figure out all of the games that ban people because they remapped keys and post about it here? Yeah, that’s not happening. Especially since my app doesn’t do anything to modify Windows operations: it is a GUI that updates a registry key that Windows itself uses to remap a key, so it is neither hack, cheat, nor restricted program.
In fact, I would say that if PUBG has a CoC that prevents remapping keys in Windows – something that is on every version of Windows since 2000 – then they need to warn you of this. Likewise, since the Xbox controller can remap keys, why doesn’t it apply there as well?
How did they notify you that it was this remapping was the specific cause of your ban? I’m more than happy to reach out to Player Unknown or whoever runs their enforcement team and get more information.
Hi,
I’ve a new HP EliteBook from HP that has some keys that your latest program does not recognise – do you want assistance adding these to your program?
Aren’t the HP Elite missing the “Insert”-key? How do you deal with that??
Davids story seems iffy to me. It’s very unlikely that
a. this game can detect remapped keys, but even if…
b. how does this constitute ‘cheating’ in their game?
This all sounds …. highly unlikely.
Games have the option to program their own keyboard handler, which means that the keys don’t get passed to Windows, so Windows cannot remap them. Other programs can do this as well, but it would be up to the games to decide if that denotes cheating in their game. For example, if someone wants to disable the Win key (which disrupts that game) is that a cheat? I wouldn’t think so.
Was wondering if you know of any way to figure out if there are any keys that aren’t on my keyboard but I could use as a bind in games/programs.
Basically I’ve been using SharpKeys to change Caps Lock to “/” to use as a push to talk key. Problem is obviously that I can’t use “/” for anything else.
I’m using United States-International layout.
bro you have all these other special unknown keys but specifically you don’t have 00_100 which I urgently need for remapping. Which I know its possible because I see options like 00_54 and 00_55 etc. at the bottom. It says that I entered a key that sharp key doesn’t know about and to check website for updates. BUT WHY WOULD YOU EVEN PUT A HALT TO PEOPLE TRYING TO TYPE A SPECIAL KEY?? Why not allow them to customly add those special key presses that you may or may not have added yourself. Anyway. I want you to add 00_100 please. OR show me a way to edit it in regedit myself. Not sure where sharpkeys injects inself into inside regedit. I’m sure I can add 00_100 myself. Maybe. I don’t know. I’m frustrated. Please help.
Per the FAQ:
Q: Type a Key shows 00_100 – can I remap this key?
A: 00_100 is a catch all code that Windows reports when a key is captured by hardware or some other driver so there’s no way to successfully remap that key, especially since multiple keys can return the same 00_100 code.
Hi, I tried to install SharpKeys on an instance of x86 Windows 10 1607, but found every MSI package after and including version 3.6 failed to install. The error message says “This installation package is not supported by this processor type. Contact your package vendor.” Installing 3.5 solved my problem so I didn’t try ZIP archives. Is there something changed between 3.5 and 3.6? If the system requirements changed please notice in advance.
The latest version is actually 3.9.2 – no idea what has changed between the 3.5 and 3.9.2 as there’s close to 9 years between releases. The ZIP file would definitely be OK for x86 – only the installer requires x64.
So the MSI package after version 3.6 requires x64 to work, while the extracted application still supports x86. Thanks for clarification…
Same thing happens with ARM. It’s also why I keep the ZIP files around: the application runs on “Any CPU” per .NET rules.
Overnight w/o using SharpKeys (latest version) the left shiftkey lays out a line of endless lower case “e”‘s. Typekey when pressing the left shirt returns “Key is disabled” and “(00_00)”.
The last time I used Sharpkeys I did set to left shift as the designated replacement for Caps Lock and that seemed to be working.
This leaves me to ask if there’s a place I can go in Regedit or use the Sharpkeys application itself to back out changes it has made?
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout
There’s a value there named “Scancode Map”. It wasn’t there at all in my registry until after I used SharpKeys.
I imagine that if you delete the “Scancode Map” value (and logout or reboot), everything will go back to default.
https://wiki.edgarbv.com/index.php/Remapping_Keyboard_Keys