|
Windowsのホットキーを使用するWindowがアクティブでないときにもキーボード上で押されたキーを認識するホットキーを使用するにはWindowsAPIのRegisterHotKey()を使います。いわゆるキーフックを簡単に実現する方法です。手順は以下のとおりです。 まず、WM_HOTKEYメッセージを補足するように、メインフォームのヘッダファイルで次のように宣言します。 WM_HOTKEYメッセージを受け取ったら実行する関数(この例ではWMHotKey())の中身を書きます。WParamにホットキーの種類がIDの形で格納されています。このIDはRegisterHotKey()を実行してホットキーを登録したときに任意に決めることができます。 キーフックを開始するにはRegisterHotKey()を呼び出します。第2引数はホットキーのID、第3引数はCtrlやAltなどホットキーとして他のきーと 組み合わせて使うものを指定できます。第4引数はホットキーをVirtual Key Codeで指定します。この例ではCtrl+SPACEが押されたときにID 0x0000をWParamとしてWM_HOTKEYを発行することになります。それをWMHotKey()で補足して処理するという流れになっています。 キーフックを解除するには以下の関数を使います。 UnregisterHotKey(Handle,0x0000); これで簡単にキーフックを実現することができます。制限としては、他のアプリケーションで予約されているホットキーを登録することはできません。さらに細かい制御をするためには、SetWindowsHookEx()など別のWindowsAPIを使用する必要があります。
目次に戻る
|