keydownイベントをプログラムが前面になくても有効にするには?


rin  2012-07-26 09:43:59  No: 143356

はじめまして。よろしくお願いします。
コマンドボタンにショートカットキーをつけたかったので、
keydownイベントを使用して、ショートカットキーを作成したのですが、
プログラムが最前面にないとショートカットキーが動きません。
ほかのプログラム(excel等)が最前面にあっても、ショートカットキーを
有効にする手段はないでしょうか?


YuO  2012-07-26 23:30:48  No: 143357

HOTKEYとして登録するのが簡単だと思います。
もちろん,メッセージまわりを自前で処理する必要がありますが。

MSDN: RegisterHotKey function
http://msdn.microsoft.com/en-us/library/windows/desktop/ms646309


魔界の仮面弁士  2012-07-31 07:36:43  No: 143358

お使いの環境が 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 を指定すれば、自アプリがアクティブでない時にも
キー入力を拾う事が出来ます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加