DLLのモジュールで以下を使用してシステムフックをかけているのですが
SetWindowsHookEx(WH_CALLWNDPROC, @CallWndProc, hInstance, 0);
実際に実行してみるとEXEのプライマリーのスレッド上のメッセージしか
インターセプトしていないようなのですが?
何か考えられる問題点などあるでしょうか?
DLL上でメッセージを判別してそこで BEEP 入れても音が鳴らない?
それとも
EXE に メッセージやコールバックを設定してるけど飛んでこない?
DLLのコールバックに入ってくるのはホストアプリ上のメッセージだけです。
ちなみにhInstanceをモジュールハンドルに変えても結局ホストアプリ上のメッセージしか
コールバックに入ってきませんでした
つまり
>EXE に メッセージやコールバックを設定してるけど飛んでこない?
だね
EXE から DLL にコールバック先を指定すると EXE がロードした DLL に
コールバック先が指定されるけど
HOOK DLL はプロセス毎にロードされるので
そのプロセス毎にロードされたDLLにはコールバック先が設定されて
いないでのコールバックが飛んでこないわけです。
ツイート | ![]() |