Most keyboards sold today have some or the other extra keys. The interesting thing is that in most cases, these keys continue to work even after any and all proprietary drivers have been removed from the system. I should know, I run a minimalist Windows XP system with just 17 services started by default, even less if I dont want to get any files off the network etc.
So how do these keys continue to work? Well according to a very interesting thread I found, support for this is part of Windows itself. You can read more about it here, here and here.
This whole structure is part of Windows' AppCommands set. AppCommands specify a standard set of additional keys that can be present in a multimedia keyboard and default handlers for the same inside of Explorer itself.
With a little bit of digging I found a splendid program which will show you multimedia keys being pressed on your keyboard. Based on the program, here is the list of AppCommands:
|8||APPCOMMAND_VOLUME_MUTE||Mute the volume.|
|9||APPCOMMAND_VOLUME_DOWN||Lower the volume.|
|10||APPCOMMAND_VOLUME_UP||Raise the volume.|
|11||APPCOMMAND_MEDIA_NEXTTRACK||Go to next track.|
|12||APPCOMMAND_MEDIA_PREVIOUSTRACK||Go to previous track.|
|14||APPCOMMAND_MEDIA_PLAY_PAUSE||Play or pause playback.|
|16||APPCOMMAND_LAUNCH_MEDIA_SELECT||Go to Media Select mode.|
|19||APPCOMMAND_BASS_DOWN||Decrease the bass.|
|20||APPCOMMAND_BASS_BOOST||Toggle the bass boost on and off.|
|21||APPCOMMAND_BASS_UP||Increase the bass.|
|22||APPCOMMAND_TREBLE_DOWN||Decrease the treble.|
|23||APPCOMMAND_TREBLE_UP||Increase the treble.|
New commands introduced with Windows XP include:
|24||APPCOMMAND_MICROPHONE_VOLUME_MUTE||Mute the microphone.|
|25||APPCOMMAND_MICROPHONE_VOLUME_DOWN||Increase microphone volume.|
|26||APPCOMMAND_MICROPHONE_VOLUME_UP||Decrease microphone volume.|
|27||APPCOMMAND_HELP||Open the Help dialog.|
|28||APPCOMMAND_FIND||Open the Find dialog.|
|29||APPCOMMAND_NEW||Create a new window.|
|30||APPCOMMAND_OPEN||Open a window.|
|31||APPCOMMAND_CLOSE||Close the window (not the application).|
|32||APPCOMMAND_SAVE||Save current document.|
|33||APPCOMMAND_PRINT||Print current document.|
|34||APPCOMMAND_UNDO||Undo last action.|
|35||APPCOMMAND_COPY||Copy the selection.|
|35||APPCOMMAND_REDO||Redo last action.|
|37||APPCOMMAND_CUT||Cut the selection.|
|39||APPCOMMAND_REPLY_TO_MAIL||Reply to a mail message.|
|40||APPCOMMAND_FORWARD_MAIL||Forward a mail message.|
|41||APPCOMMAND_SEND_MAIL||Send a mail message.|
|42||APPCOMMAND_SPELL_CHECK||Initiate a spell check.|
|43||APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE||Toggles between two modes of speech input: dictation and command/control (giving commands to an application or accessing menus).|
|44||APPCOMMAND_MIC_ON_OFF_TOGGLE||Toggle the microphone.|
|45||APPCOMMAND_CORRECTION_LIST||Brings up the correction list when a word is incorrectly identified during speech input.|
How to make use of these commands? Well you can add or modify registry keys. For e.g., (from the thread) the mail key usually launches the default mail app.
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AppKey\15\RegisteredApp = "Mail"
If you want to replace this to open Notepad,
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AppKey\15\ShellExecute = "notepad.exe"
(Or change HKLM if you want to modify for all users etc)
RegisteredApp means the app registered for that function will be called. (Like Mail above)
Association Means the app associated with a particular file type will be opened. For e.g. the Media key is registered by default to .cda, meaning the default app used for playing music CDs will be opened on pressing that key.
ShellExecute opens a particular program to be run.
BTW, if you do not know what HKLM and HKCU means, know that they relate to the registry. Editing the registry is very dangerous and you may destroy your windows installation if you mess it up. Be Careful! Phew... That is out of the way :) Interestingly for registry changes, these ones do not require a restart!!
Of course, the simplest way to edit these properties safely is use the TweakUI powertoy from Microsoft. Simply go to Explorer>Command Keys and alter to your heart's satisfaction! Just two caveats:
1. As you type in text, it automatically tries to find the matching folder path. The annoyance is that when you actually try to save, it says the "Program Does Not Exist". This usually means you are trying to run a program with spaces etc in the path. Simply wrap the program name with a quotes, such as "e:\Program Files\Winamp\CLAmp.exe" /playpause.
2. The Play/Pause button is not listed and even editing the registry to make AppCommand 14 call CLAmp does not work. Play/Pause seems uncustomizable right now, if anyone knows why, please do tell me. Funny though it still Pauses Window Media Player, almost as if WMP was locking that command ;)
Nice... So now I can pause/resume my Winamp using the Media key on my keyboard using CLAmp :)
Hmm... Makes me wonder why I need those bloatware drivers from M$ and Logitech.