API関数のRegisterHotKeyおよびUnregisterHotKeyを使用することで、ウィンドウハンドルに関連づけられたホットキーを設定・解除する事ができる。 ホットキーを指定する際は、キーコードと修飾キー(ALT, CTRL, SHIFT)及び、ホットキーのIDを指定する必要がある。 ホットキーのIDは、0x0000~0xBFFFの範囲でアプリケーションに一意な値を設定する必要がある。
登録したホットキーが実際に押されたときにはWM_HOTKEYメッセージが送られてくるので、これに対してフォームをアクティブにする記述をすれば、ホットキーが押された時点でフォームをアクティブにすることができる。 複数のホットキーから目的のものを識別するためには、lParamの値を比較する必要がある。
なお、RegisterHotKeyで指定するキーコード・修飾キーの値は、Keys列挙体の値を使うことができるが、修飾キーとして使えるWindowsロゴキーに該当するメンバがないので、個別に定数などを用意する必要がある。 さらに、システムや他のアプリケーションで既に使用されている場合は、そのホットキーを登録をすることはできない(RegisterHotKeyの呼び出しに失敗する)。
以下の例では、Ctrl+Spaceでフォームをアクティブにし、Win+Enter通知音(SystemSounds.Beep)を鳴らすようにホットキーの割り当てを行っている。