![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
とあるアプリケーションがアクティブウィンドウである場合、
とあるキーを抑制するアプリを作っているのですが、
とあるキーを抑制するのは低レベルキーフック用の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ランキング
-
エクセルで作った新しいウイン...
-
「アイテムは収集されました」...
-
ラジオボタンの初期指定
-
ExcelVBA Delegate文がエラー...
-
ダイアログをスクロールさせるには
-
エクセルで複数のウィンドウ枠...
-
検索の画面がでなくなってしま...
-
c++/cli .NET Formアプリケー...
-
ゲームでは結局どっちが良いの?
-
UWSCでランダムな処理をする場合
-
勝手にウィンドウが開いて止ま...
-
Windows10 名前をつけて保存で...
-
focusメソッドを使ってもカーソ...
-
ExcelVBA:フォームの最小化ボ...
-
Msgboxの変数の表示につ...
-
EXCEL VBA WindowsAPIの文字列...
-
eclipseからコンソールが消えた
-
グラフを別ウィンドウで立ち上...
-
Excelの上下を固定したい
-
最大化と最小化ボタン
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで作った新しいウイン...
-
「アイテムは収集されました」...
-
ゲームでは結局どっちが良いの?
-
検索の画面がでなくなってしま...
-
勝手にウィンドウが開いて止ま...
-
VBA .Value=.Value ?
-
ラジオボタンの初期指定
-
作成したウインドウのサイズを...
-
Vba LongPtrについて教えてくだ...
-
Excelの上下を固定したい
-
他のアプリケーションの終了処理
-
【VB2008】 マウス操作の一時的...
-
「&HFFFF」「&H1A」とは?
-
VBで外部プログラムを位置のみ...
-
ExcelのBOOKが消えた!
-
Alt+P,Alt+NをPostmessageで送...
-
UWSCで特定のChromeのタブをア...
-
Console.WriteLine で表示されない
-
MFC ダイアログ上のID取得につ...
-
最大化と最小化ボタン
おすすめ情報