1

プロセスのセキュリティ権限を設定する方法や、Windows がグローバル ウィンドウ フック DLL を読み込まないようにする方法はありますか? SetWindowsHookEx を無効にしたくありません。フック dll がプロセスに読み込まれないようにしたいだけです。

4

1 に答える 1

0

独自のフックをインストールしてCallNextHookEx()からフックから呼び出さないことで、すべてのフックを無効にできる場合があります。これを正しく行うには、フックが呼び出される最初のフックになるようにする必要があります。

フックが呼び出されている順序は文書化されていないようですが、試行錯誤で確認するのは簡単です。異なるプロセスからいくつかのフックをインストールして、どれが最初に呼び出されるかを確認するだけです。最も可能性の高いケースは

  • インストールされる最初のフックは、最初に呼び出されるフックです。これは簡単なオプションです。できるだけ早くフックを取り付けてください。
  • 呼び出された最初のフックは、最後にインストールされた唯一のフックです。これはもっとトリッキーです。自分のものが最後に取り付けられたフックであることを常に確認する必要があります。これを行うためのハックな方法は、1秒ごとにフックを削除して再度追加するスレッドを作成することです。

この解決策は完璧にはほど遠いものであり、注文が文書化されていないことを考えると、将来のある時点で変更される可能性があります。フックの呼び出し順序が完全にランダムである可能性もあります。その場合、このソリューションではあまり効果がありません。

于 2011-10-10T23:32:09.573 に答える