Just like tombull89 I am going to suggest AutoHotkey (I used it for the first time like 5 years ago IIRC) and mention some other things.
Windows
AutoHotkey
http://www.autohotkey.com/
What is AutoHotkey you can read at its homepage or in tombull89's answer quoting it, so I won't repeat it. Actually nowadays it's better to use AutoHotkey_L, a custom build of AutoHotkey maintained by Lexikos, which has 64-bit support and native Unicode support. Installer
For a newcomer this is still not helpful, I am aware of this. To have a grasp of AH it's good to skim at least Quick-start Tutorial and later browse rest of Documentation if needed.
Example
In this case you should look particularly at following pages: Hotkeys (Mouse, Joystick and Keyboard Shortcuts), List of Keys, Mouse Buttons, and Joystick Controls and Send / SendRaw / SendInput / SendPlay / SendEvent: Send Keys & Clicks. Then you'll be able to assemble simple AHK script, e.g. something like:
^!Left::Send {Media_Prev}
^!Down::Send {Media_Play_Pause}
^!Right::Send {Media_Next}
+^!Left::Send {Volume_Down}
+^!Down::Send {Volume_Mute}
+^!Right::Send {Volume_Up}
^!.::
MsgBox, 0, , Hello AHK world!
return
Here you define following actions:
- Ctrl+Alt+← sends Previous
- Ctrl+Alt+↓ sends Play/Pause
- Ctrl+Alt+→ sends Next
- Ctrl+Shift+Alt+← sends Volume Down
- Ctrl+Shift+Alt+↓ sends Mute
- Ctrl+Shift+Alt+→ sends Volume Up
- Ctrl+Alt+. invokes MessageBox greeting AHK world (just to show non-oneline key-commands mapping ending w/
return)
Usage
You create .ahk file, paste above code in it (w/o useless MsgBox, of course), save and double click to run it. You'll get H icon in systray allowing you to interact w/ the script, particularly: suspend hotkeys, pause script (not useful here) or just exit it. For better convenience I suggest compiling such script. You can do it using Right Button Mouse on the file and choosing Compile Script. Then you'll get .exe file (pretty big, but it's like complete autohotkey) that you can share w/ others or add to autostart for instance.
Remapping via the Registry's "Scancode Map" / KeyTweak
In AutoHotkeys' Remapping Keys and Buttons page you can read about other way of assigning keys to keys, remapping. It may be not useful in your case (unless you're ready to "lose" some keys), but it's still worth reading. (Then you should figure out why I haven't used AHK remapping in my example.)
Let me quote it (w/o blockquote to preserve formatting):
<quote>
Advantages
- Registry remapping is generally more pure and effective than AutoHotkey's remapping. For example, it works in a broader variety of games, it has no known alt-tab issues, and it is capable of firing AutoHotkey's hook hotkeys (whereas AutoHotkey's remapping requires a workaround).
- If you choose to make the registry entries manually (explained below), absolutely no external software is needed to remap your keyboard. Even if you use KeyTweak to make the registry entries for you, KeyTweak does not need to stay running all the time (unlike AutoHotkey).
Disadvantages
- Registry remapping is relatively permanent: a reboot is required to undo the changes or put new ones into effect.
- Its effect is global: it cannot create remappings specific to a particular user, application, or locale.
- It cannot send keystrokes that are modified by Shift, Control, Alt, or AltGr. For example, it cannot remap a lowercase character to an uppercase one.
- It is not supported on Windows 95/98/Me (AutoHotkey can do some limited Win9x remapping).
- It supports only the keyboard (AutoHotkey has mouse remapping and some limited joystick remapping).
How to Apply Changes to the Registry
There are at least two methods to remap keys via the registry:
- Use a program like KeyTweak (freeware) to visually remap your keys. It will change the registry for you.
- Remap keys manually by creating a .reg file (plain text) and loading it into the registry. This is demonstrated at www.autohotkey.com/forum/post-56216.html#56216
</quote>
EventGhost
EventGhost is an advanced, easy to use and extensible automation tool for MS Windows. It can use different input devices like infrared or wireless remote controls to trigger macros, that on their part control a computer and its attached hardware. So it can be used to control a Media-PC with a normal consumer remote. But its possible uses go much beyond this.
http://www.eventghost.org/
Haven't tried it, but looks interesting and a bit related, so I think it's worth mentioning it here.
Some SuperUsers may remember Girder, that unfortunately stopped being freeware long time ago. EventGhost seems somewhat similar. I no longer have AverMedia's TVPhone98, but using remote via Girder was fun.
Linux
TBD (sorry, don't have time now, I'll promise I fix it some time later)