0

ユーザーが alt タブでウィンドウの外に出たときを検出しようとしています。いくつかのメッセージを試しました (WM_ACTIVATE、WM_KILLFOCUS、WM_ACTIVATEAPP、WM_NCACTIVATE、WM_CANCELMODE、および SC_MINIMIZE をチェックする WM_SYSCOMMAND)。しかし、同じ問題がまだ発生します。次のことが起こります。

  1. アプリケーションにフォーカスがあり、alt を押しながら tab を押します。
  2. 次のウィンドウが表示されます。
  3. Alt キーを押したままにしてからもう一度 Tab キーを押しますが、今回はタブのみが認識されるため、通常の動作のように再度 Alt タブキーを押すのではなく、新しいウィンドウでタブキーを押すことになります。

私は低レベルのキーボード フックを使用しており、それをアンインストールすると、上記の代替タブの動作は完全に機能します。基本的に、ユーザーがこの方法でウィンドウを離れたらすぐにキーボード フックをアンインストールしたいと考えています。別のウィンドウで alt タブを離すとすぐに、探しているいくつかのメッセージがウィンドウに表示され、フックがアンインストールされます。ただし、この方法でキーを保持すると、フックがインストールされている間は期待どおりに機能しません。

4

2 に答える 2

0

なぜキーボードフックを外す必要があるのですか? SetWindowsHook はアプリケーションに対してローカルであり、他のアプリには影響しません。したがって、アプリにフォーカスがない場合は何もしません。

スクリーンリーダーを台無しにしないように、 CallNextHookEx でコールバックの次のフックを呼び出すように編集してください

于 2013-05-06T15:17:04.480 に答える