1

非常によく知られている WinAPI 関数があります。

BOOL WINAPI RegisterHotKey(
  __in_opt  HWND hWnd,
  __in      int id,
  __in      UINT fsModifiers,
  __in      UINT vk
);

MOD_ALTMOD_CONTROL、キー、MOD_SHIFTおよび.MOD_WINMOD_NOREPEAT

したがって、次を使用して、組み合わせのAキーなどのシステム全体のホットキーを作成できます。Shift+A

RegisterHotKey(NULL,1,MOD_SHIFT,0x41);

ここで重要な質問:

MOD_SHIFTキーの組み合わせの登録済みキーがそのような「LOCK」キーのいずれかがオンになっているときのホットキーと、「LOCK」キーのいずれかがオフになっているときの通常のトラップされていないキーとしての動作は?

ホットキーを登録/登録解除するようなタイマーと監視GetKeyState(VK_NUMLOCK)&0xFFFFは、解決策としてはあまりにもずさんであり、システムのパフォーマンスが遅くなったり干渉したりする可能性があり、システムに関係しているため、不完全な方法のように思えます-全体のキー動作。

より良い方法はありますか?

4

1 に答える 1

1

状況によっては、イベントコードの先頭にある「LOCK」キーの状態を確認するだけです。

それ以外の場合は、本当に必要な場合は、SetWindowsHookExを使用して、監視を行うためのキーボードフックを作成できます。

于 2011-05-16T05:29:51.690 に答える