- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:キィーボードをフックしません、何故ですか???)
キィーボードをフックしない理由とは?
このQ&Aのポイント
- キィーボードをフックするためのDLLがWM_KEYDOWNメッセージをフックできない問題が発生しています。
- WM_KEYDOWNの代わりにWM_CREATEやWM_CLOSEなどのメッセージをフックできることが確認されていますが、キィーボード系のメッセージではフックできないためです。
- 原因は初歩的な知識の欠如によるものと思われますが、具体的な原因は分かりません。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
HOOKPROC型のLPARAMをCWPSTRUCT*にキャストしているので、 SetWindowsHookEx()の第1引数(フックタイプ)をWH_CALLWNDPROCにしてません? WH_KEYBOARDに変えるといけるはずです。 LRESULT CALLBACK KeyboardProc( int code, // フックコード WPARAM wParam, // 仮想キーコード LPARAM lParam // キーストロークメッセージの情報 );
その他の回答 (2)
- gerugugu84
- ベストアンサー率37% (29/78)
回答No.3
肝心なことを書き忘れてました。 WH_CALLWNDPROCにしているという前提で書きますが、、 ちなみにWH_CALLWNDPROCでフック出来るのはSendMessageされたものだけです。 WM_KEYDOWN等はポストされるメッセージのためWH_CALLWNDPROCではフック出来ません。
質問者
お礼
重ね重ねのご指導ありがとうございます 今後とも宜しくお願い申し上げます ありがとうございました
- satomi3951
- ベストアンサー率71% (98/137)
回答No.2
WH_KEYBOARDフックではなく、 WH_CBTフックをかけてるとか?
質問者
お礼
ありがとうございます 勉強させて頂きました
お礼
ありがとうございます ご指摘の通りの誤りでした 修正致しましたらOKになりました! ありがとうございました