掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
キー入力をグローバルフックするには? (ID:56330)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
NowNowさん、返信遅れてすみません。メモ帳→自作プログラムの順番でやってみたのですがだめでした。 いろいろと試行錯誤を繰り返すうちに問題点が見えてきたので報告します。まず、2005/02/08(火)の私の発言に”メモ帳に向けて入力したときはCKeyHook::KeyboardProcが呼ばれていないようです”といいましたがごめんなさい、これ間違いです。ちゃんと呼ばれていました。ので、フックプロシージャはちゃんとセットできてます。問題点は,フォーカスを失うとなぜかメッセージの送信先のウインドウハンドルが0になってしまっていることでした。TargetWndを共有セグメントにおいても、置かなくてもです。 理由がわからないのですが、これはなぜ何でしょう?よろしくお願いします。 関係があるかどうかわかりませんがTargetWndに値がセットされるタイミングを書いておきます。 ・NULLで初期化 ・コンストラクタでNULLを代入 ・OnCreate内でCKeyHook::SetTargetWndを呼び出し引数であるm_hWndを代入 あと、言い訳ではないんですがこの程度の原因に気づくのに遅れたわけがあります。DLL作成中にコンパイル->デバッグをするとどのプログラムを使ってDLLを呼び出すか聞かれるじゃないですか?そのときに、同時進行中の自作プログラムを選択していたんですけど、あれってだたF5押したときにそのとき選択したプログラムを呼び出すだけなんですね。てっきりVCがプログラムとデバッグ後のDLLとリンクするように裏でがんばってるのかと思ってました。 そんなこんなで、DLLデバッグ->F5押す->しかし自作プログラムフォルダ下のdebugフォルダには古いDLLが入ったまま->実行結果変わらず->なんで〜!ってなことを幾度となく繰り返していました。なんか悲しくなってきな(泣)
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.