1

仮想キーのフックについて質問があります。アプリケーションのグローバル ショートカットを定義したいと思います (RegisterHotkey では十分ではありません)。ただし、ショートカットを実装する 2 つの方法を試しました。

  1. WH_KEYBOARD_LL フックを登録しました。すべてのフック コードを DLL に入れると、正常に動作します。ただし: 特別なアプリケーション ( CCleaner など) にフォーカスがある場合、フックは機能しなくなります。私のアプリケーションには何も届きません。32ビットと64ビットのDLLで試してみました。

  2. フックを使用する代わりに GetAsyncKeyState を頻繁に呼び出すことで問題を解決しようとしました。また、このバージョンは、特別なアプリケーション (再び CCleaner ) が注目されるまではうまく機能します。この時点で、キーが押された場合でも、GetAsyncKeyState はすべてのキーに対して 0 を返します。

この問題を修正する方法を知っている人はいますか?

ところで、私のフックを無効にするアプリケーションは Delphi で書かれているようです。これらの「悪意のある」アプリケーションはさらに、どの入力にも反応しません。つまり、これらのアプリケーションのウィンドウで ShowWindow を呼び出しても効果がありません。SetWindowLong などについても同様です。

ご回答ありがとうございます。

4

0 に答える 0