はじめまして。よろしくお願いします。
コマンドボタンにショートカットキーをつけたかったので、
keydownイベントを使用して、ショートカットキーを作成したのですが、
プログラムが最前面にないとショートカットキーが動きません。
ほかのプログラム(excel等)が最前面にあっても、ショートカットキーを
有効にする手段はないでしょうか?
HOTKEYとして登録するのが簡単だと思います。
もちろん,メッセージまわりを自前で処理する必要がありますが。
MSDN: RegisterHotKey function
http://msdn.microsoft.com/en-us/library/windows/desktop/ms646309
お使いの環境が VB6 か VB.NET か分かりませんが、VB6 ならば
下記のようにしてホットキーを登録できます。
http://www.geocities.co.jp/siliconvalley/4805/vbtips/vbtips092.htm
VB.NET ならこのあたりでしょうか。
http://dobon.net/vb/bbs/log3-34/20932.html
ただしホットキーの場合、利用できるキーの組み合わせには
制限があります。もしもホットキーでは賄えないような場合には、
DirectInput を使って拾うか、または下記の手法を検討してみてください。
http://dobon.net/vb/bbs/log3-35/21581.html
なお DirectInput の場合は、SetCooperativeLevel を呼び出す際に
DISCL_BACKGROUND を指定すれば、自アプリがアクティブでない時にも
キー入力を拾う事が出来ます。
ツイート | ![]() |