誰かが、特定のウィンドウ上の特定のボタンをマウスでクリックするのを傍受するために使用するWindows API関数を見つけるために私を導くことができますか?私はspy ++を使用しており、ファインダツールをボタンやウィンドウ内の任意のものに移動すると、ハンドラや他のものに関する情報を読むことができることを学びました。そこで、何らかのアクションが実行される前に、マウスのクリックを傍受し、コードを挿入する方法があります。これについて何か考えを共有してくれてありがとうございます。ウィンドウのマウスクリックを傍受する
答えて
:
あなたがターゲットウィンドウの中
WH_CALLWNDPROC
メッセージフックをインストールするためにSetWindowsHookEx()
を使用することができますそして、フックコールバックは、ターゲットウィンドウ自体にWM_LBUTTON(DOWN|UP)
、またはターゲットウィンドウの親にBN_CLICKED
のようなウィンドウメッセージを処理することができます。注意点は、フックをターゲットプロセスに注入できるように、コールバックをDLLに実装する必要があることです。GetWindowThreadProcessId()
を使用してターゲットウィンドウのスレッドIDを取得できます。この変形例では、
SetWindowsHookEx()
にWH_GETMESSAGE
フックをインストールしてから、PostMessage()
を使用して、ターゲットウィンドウにカスタムウィンドウメッセージを投稿することができます。フックコールバックは、SetWindowLongPtr()
またはSetWindowSubclass()
を使用して、ターゲットウィンドウを直接サブクラス化したり、その親をサブクラス化してさらにメッセージ処理を行うことができます。SetWinEventHook()
を使用して、ボタンクリックなどのイベントを監視することができます。EVENT_OBJECT_INVOKED
WINEVENT_OUTOFCONTEXT
フラグを使用する場合、DLLは必要ありませんが、インストールスレッドはアクティブなメッセージループを必要としているため、イベントはプロセスの境界を超えて処理できます。
Windowsフックを設定するには、SetWindowsHookEx APIに電話する必要があります。ここでは、ソースコードとの記事ですが、それは、その使用方法を示します。Hooks and DLLs
@RemyLebeau @RemyLebeau私はこれを行う方法を投稿しました。私と違っていれば、あなた自身の答えを別に投稿してください。 –
- 1. ウィンドウを傍受するウィンドウを傍受する
- 2. 他のプログラムからのマウスクリックの傍受
- 3. WPFアプリケーションへのすべてのマウスクリックを傍受する
- 4. ウィンドウ内のマウスイベントを傍受する
- 5. Qtライブラリ、メッセージを傍受するためのサブクラス化ウィンドウ?
- 6. マウスイベントを傍受してもQtウィンドウが移動する
- 7. 傍受
- 8. WebViewの傍受
- 9. HTMLインポートを傍受する
- 10. 注射を傍受する
- 11. XHRを傍受する
- 12. フラッシュメッセージを傍受する
- 13. Sitefinity、ページングイベントを傍受する
- 14. バーコードスキャンイベントを傍受する
- 15. 傍受ログメッセージslf4j
- 16. リコール傍受
- 17. Weblogicデプロイメントの傍受
- 18. 他のアプリケーションのモーダルダイアログポップアップを傍受する
- 19. 受信メッセージの場所/受信メッセージを傍受する
- 20. JUnitのアサート機能を傍受する
- 21. ウェブブラウザのコンソールメッセージを傍受する
- 22. ストアキットのアラートビューを傍受する
- 23. アンドロイドのスクリーン更新を傍受する
- 24. ギャラリーの共有クリックを傍受する
- 25. DNSサーバのデータを傍受する
- 26. コンボボックスのドロップダウンを傍受する
- 27. UIPickerViewユーザーの選択を傍受する
- 28. nlogのログメッセージを傍受する
- 29. MVCコントローラのアクションメソッドを傍受する
- 30. WCFクライアントのメッセージを傍受する
これは最善の答えですが、コード例が必要です – FindOutIslamNow