
とあるアプリケーションがアクティブウィンドウである場合、
とあるキーを抑制するアプリを作っているのですが、
とあるキーを抑制するのは低レベルキーフック用のDLLを用意して実現しました。
とあるアプリケーションがアクティブウィンドウである場合は、
500msのタイマで監視していたのですが、かっこわるいので
ウィンドウイベントをフックしてWM_ACTIVATEあたりを拾って
拾ったときのウィンドウハンドルがとあるアプリケーションのウィンドウか否かで
判断しようかなんて思ったのです。
で、本題です。
SetWindowsHookEx(WH_CALLWNDPROC, &HookProc, g_hInst, NULL);
と、実行しているのですが、自分のウィンドウと、IMEとか、
合計3~4種のウィンドウのイベントしか拾えません。
電卓を起動しても電卓のイベントが何も拾えなかったり。
デバッグだからだめなのかと思い、ログファイルに吐かせた結果
こういった状況です。
ロギングしたイベントは特にマスクせずに、コールバックが呼ばれ、
HC_ACTIONであった場合に全て書き出してみました。
そこで質問です。
SetWindowsHookEx(WH_CALLWNDPROC~
では、デスクトップ上の全てのウィンドウのイベントを覗き見できる
訳ではないのでしょうか?
それとも、やり方がわるいのでしょうか?
宜しくお願いします。
#SetWindowsHookExの取り扱いについてはMSDN上で確認できる
#部分についてはわかっているつもりです。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
参考にはならないようです。
結局回等は得られませんでしたが、
恐らくですが、WH_CALLWNDPROCでは無関係なウィンドウの
ウィンドウイベントまで拾えるわけではなさそうですね。
No.1
- 回答日時:
こんにちは。
g_hInstにフック用に作成したDLLモジュールハンドルを指定していないのでは。
参考になりそうなURL
http://oshiete1.goo.ne.jp/qa1343915.html
この回答への補足
してます。
#SetWindowsHookExの取り扱いについてはMSDN上で確認できる
#部分についてはわかっているつもりです。
あとURL先ですが、
そちらはローカルフックにしようとしていて
グローバルフックにしていたというオチですよね。
グローバルフックは低レベルキーフックで実現していまして、
ウィンドイベントのフックも同じくグローバルフックで行いたいのですが、
半端にしかイベントを拾えてないという状況に問題があるのです。
申し訳ないですが、参考にはなりそうも御座いませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 2つのウィンドウ選択時の表示について 10 2023/07/25 08:48
- その他(プログラミング・Web制作) pythonで、tkinterとpillowの組み合わせ 2 2022/08/16 17:42
- レトロゲーム 回答が来なくて困っています!!!誰か助けて下さい!!! https://ux.getuploader 1 2022/11/20 13:54
- その他(OS) エクスプローラのアクティブウィンドウのタイトルバーに色がつかない 3 2023/07/18 18:34
- Visual Basic(VBA) 起動中のアプリ、ソフトの取得 3 2022/12/28 11:13
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- その他(OS) Windowsで大量の画像サイズを半自動で変更する方法 6 2023/02/17 08:45
- UNIX・Linux ubuntu ウィンドウのバー ダブルクリック 巻き取る 1 2022/04/28 19:28
- Windows 10 (続き)2つのウィンドウ選択時の表示について 6 2023/08/13 15:05
- Visual Basic(VBA) Vba LongPtrについて教えてください 2 2022/08/19 11:14
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで作った新しいウイン...
-
「アイテムは収集されました」...
-
勝手にウィンドウが開いて止ま...
-
ラジオボタンの初期指定
-
VBA .Value=.Value ?
-
ゲームでは結局どっちが良いの?
-
Vba LongPtrについて教えてくだ...
-
指定したインアクティブウィン...
-
他のアプリケーションの終了処理
-
Excelの上下を固定したい
-
[VBA] UserForm を Excel の W...
-
Alt+P,Alt+NをPostmessageで送...
-
エクセルで1行目から3行目が消...
-
一つ前のウィンドウをTopMost=T...
-
【VB2008】 マウス操作の一時的...
-
SendMessage関数がうまく動作し...
-
VBで外部プログラムを位置のみ...
-
UWSCで特定のChromeのタブをア...
-
検索の画面がでなくなってしま...
-
ウィンドウにキー送信で ENTER ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで作った新しいウイン...
-
「アイテムは収集されました」...
-
ラジオボタンの初期指定
-
勝手にウィンドウが開いて止ま...
-
Vba LongPtrについて教えてくだ...
-
検索の画面がでなくなってしま...
-
Excelの上下を固定したい
-
ExcelのBOOKが消えた!
-
[VBA] UserForm を Excel の W...
-
VBA .Value=.Value ?
-
作成したウインドウのサイズを...
-
Console.WriteLine で表示されない
-
エクセルで1行目から3行目が消...
-
「&HFFFF」「&H1A」とは?
-
【VB2008】 マウス操作の一時的...
-
UWSCで特定のChromeのタブをア...
-
他のアプリケーションの終了処理
-
MFCでハンドルを取得するには
-
VBAで単一ブック複数窓を閉じる...
-
EnumChildWindowsの使い方(VBA)
おすすめ情報