SetWindowHookExを試してみてください。このようにして、プロセスに送信されるすべてのキーボード メッセージをフックし、それらの配信を完全に停止できます (たとえば、フォーカスを持たずに独自のアプリで処理します)。これは非常に堅牢な方法ですが、一部のコピー プロテクションはそれを好まない場合があります。
通常の手順は次のとおりです。
Windows メッセージをフックして最初のフィルタリングを行う DLL を作成します (別のプロセス/アドレス空間にロードする必要があるためです)。通常、何らかの IPC メカニズムを使用して、独自のプロセスを形成します。マウス メッセージのみをフックする場合は、Windows メッセージを使用して、独自の隠しメッセージに情報を送信できます。メッセージが届かないようにする場合は、そこでチェーンを停止できます。
IPC 呼び出しが自分のウィンドウに到着したとき。キーボード メッセージを自分で受け取ったかのように処理します。ピントなどに気をつけてください。
この方法でキャッチできない唯一のことは、変更しようとしているアプリケーションの動作がGetAsyncKeyState () に依存している場合です。そのような場合、唯一のオプションは、DLL を他のアドレス空間に挿入し、呼び出し自体をフックすることですが、それは高レベルのハッキングです。
一言アドバイス: Windows フッキング ソフトウェアを開発する場合: 頻繁に保存し、頻繁に保存してください! 間違えると、大量のアプリケーションが一度にクラッシュする可能性があります...