Hacking ShortcutKeys

WARNING: Expert users only. You could seriously damage your system when changing these values.

Change the action key
Go to advanced and pick a keycode from this list, or, use Virtual Keycode Grabber.

The ShortcutKeys commandline
-wdirFind bindings.dat in the working directory instead of the application directory. Overrides any previous -ndir and -dir commands.
-ndir (default)Find bindings.dat in the application directory. Overrides any previous -wdir and -dir commands.
-dir <directory>Find bindings.dat in the given directory instead of the application directory. Overrides any previous -ndir and -wdir commands.
-showShow the settings screen at startup. Overrides any previous -hide commands.
-hide (default)Hide the settings screen at startup. Overrides any previous -show commands.
<file>Import bindings from this file and save bindings.dat.
All commands can be used multiple times.

The bindings.dat file format
BYTE[1] Keystroke Length
CHAR[80] Keystroke (Length bytes are valid)
UINT[1] Actionstring Length
CHAR[*] Actionstring (Length bytes, not terminated)

Sorry for the crappy format, but I used some delphi-specific types.

Using HookDLL.dll
HookDLL has three exported functions: StartHook, StopHook, HookActive. The delphi templates are:
type
  PKBDLLHOOKSTRUCT = ^KBDLLHOOKSTRUCT;

  KBDLLHOOKSTRUCT = packed record
    vkCode      : DWORD;
    scanCode    : DWORD;
    flags       : DWORD;
    time        : DWORD;
    dwExtraInfo : DWORD;
  end;
  
  TExtHook = function(awParam: WPARAM; alParam:PKBDLLHOOKSTRUCT): boolean; stdcall;

procedure StartHook(KBHook:TExtHook); stdcall;
procedure StopHook; stdcall;
function HookActive: boolean; stdcall;
Refer to the MSDN library for more information on KBDLLHOOKSTRUCT.