Two more enhancements for this release, even though this was supposed to be feature complete already. One is major; one not so much… Ah, the familiar feeling that is feature creep once again in my life!
Fn key support – An attempt at it anyway. On my IBM ThinkPad it comes through as the same Scan Code as “Sleep” does, so it’s hard to know if it’s the same code for every notebook. Should be interesting to see what comes out of this.
Type Key – This came out of some research and a posting at a developers site… got me so giddy that I forgot to go out and get lunch! Learned about a very MFC-looking method of C# and the .NET Framework, and that’s IMessageFilter::PreFilterMessage. I noticed today that SDK applications were getting the correct scan codes from WM_KEYDOWN yet C# wasn’t returning a correct value from the KeyDown Event (which is the closest equivalent event). So, someone suggested that I go back to the SDK and snoop on the WM_KEYDOWN message from within C#, and that works fine. Now on the Add/Edit mapping dialog you’ll see a Type Key button for both the From and To group. Click that, you’ll get another dialog box: type a key and you’ll see what key you typed. Click OK and SharpKeys will find it in the list for you.
Some caveats with this: If a key is already mapped on this machine and you use Type Key, it will report the remapped value. Say you’re like me and you’ve remapped Caps Lock to Left Shift and you open Type Key: press Left Shift and you see Left Shift, but the same thing happens if you press Caps Lock! Also, there’s handling for what happens if you press a key that SharpKeys doesn’t know about – please email me with scan codes that aren’t found and I can add them.
This will make for a longer release cycle, but I felt it was an important enough feature to get in there now, instead of waiting for another version.
Read: SharpKeys FAQ