How do I remap the keys on my keyboard? [duplicate]

I broke my laptop and had to buy a new one with a new keyboard that I am struggling to get familiar with, especially with the keys like home, page-up, page-down and end, which aren't standardized at all.

I found myself doing this for like the 5th time in the last several years, and I think it is really annoying.

Is there an app that can reliably map one key to another? By reliably I mean that key mapping works with Shift, Alt, and other modifiers.

UPDATE

Windows 7, Samsung Chronos 7


Microsoft Keyboard Layout Creator is an excellent tool for creating custom keyboard mappings.

The Microsoft Keyboard Layout Creator (MSKLC) extends the international functionality of Windows 2000, Windows XP, Windows Server 2003, Windows Vista, and Windows 7 systems by allowing users to:

  • Create new keyboard layouts from scratch
  • Base a new layout on an existing one
  • Modify an existing keyboard layout and build a new layout from it
  • Multilingual input locales within edit control fields
  • Build keyboard layout DLLs for x86, x64, and IA64 platforms
  • Package the resulting keyboard layouts for subsequent delivery and installation

There is an excellent tool for remapping keys for Windows Platform known as SharpKeys.

Sharpkeys is supported on Windows XP/2003/2000/Vista/7.

Another software is KeyTweak.


Try AutoHotkey. Its configuration syntax isn't the greatest, but it's very flexible.