C言語、もしくはC++で書かれているメッセージフック(マウスカーソル)のサンプルプログラムが

ダウンロードできるHP、もしくは理解の手助けとなるHPを教えてください。よろしくお願いします。

現状以下HPにて学習中・・・
http://www.kab-studio.biz/Programing/Codian/DLL_Hook_SClass/06.html
いろんな資料をみて早く理解したいので教えていただきたくよろしくお願いします。
良いHPを紹介してくれた人には最大250ポイント、
+直接的な指導をしてくれた人には最大500ポイント差し上げます。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2007/03/06 10:01:45
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:llusall No.1

回答回数505ベストアンサー獲得回数61

ポイント100pt

こちら参考になりますでしょうか?


●Win32API(C言語)編 第7章 マウスカーソルの操作


標準 Windows API-カーソル操作


グローバルフックを使う

WH_MOUSEフック

GetMessage関数やPeekMessage関数が返そうとしているマウス メッセージを監視する。


WisdomSoft カーソル操作


猫でもわかるプログラミング 第101章 マウス・キャプチャー

マウスカーソルが自分のウィンドウ内にあるときは、マウス関連メッセージを受け取ることができました。しかし、ウィンドウ外に出ると自分のところにはメッセージは来ません。プログラムによってはウィンドウの外に出てもメッセージがほしい場合があります。これを実現するのがマウス・キャプチャーという技(?)です。

id:harunoharuno

目的は、ダイアログ外にマウスカーソルが出て行ったときの処理です。

SetCaptureをして試してみたのですが、マウスがクリックされたときしか

メッセージを受け取れなかったのでこの

方法は使えないように思えました。

とりあえず、

http://www.kab-studio.biz/Programing/Codian/DLL_Hook_SClass/08.h...

を元にシステムフックを学習したのですが、、、、

なぜかローカルフックと同じ結果になってしまいました。

何故!?

システムフックを用いれば、他のアプリがアクティブになっているときも

カーソルの位置を知ることが出来るのではないかと思って

おりましたが、なかなか難しい・・・。

アドバイスや当初質問した内容以外にも、

実現方法の代替案などありましたら教えていただきたくお願いします。

  • 『追記』----------------------------------------------------

http://www.kab-studio.biz/Programing/Codian/DLL_Hook_SClass/08.h...

を元にキーボードグローバルフックの動作を確認できました。

あとはキーボードのサンプルをみながらキーボードフックし

それに対応するメッセージ処理を作成するだけ、、頑張ります。

あっあと、別件ですが、

llusallさんに先日教えてもらった

新しいウインドウでHPを開く方法ですが、

自分にあった方法で実装することができました。

これも貴重なヒントのお陰なのです。

感謝しております。

2007/03/01 19:25:00
id:hamster009 No.2

回答回数3431ベストアンサー獲得回数50

ポイント100pt

なんかみなさん、いろいろ苦労されてるみたいですね。

http://salv.miscnotes.com/1998/03/vb5_3.php

http://www2s.biglobe.ne.jp/~geoph/nicky/nicky.cgi?DATE=200106?MO...

id:harunoharuno

回答ありがとうございます。

>>なんかみなさん、いろいろ苦労されてるみたいですね。

おかげさまでなんとか、

正常にシステムフックができたような気配です。

振り返ってみたらちょっとハードルが高めだったかもしれませんが、良い勉強になりました。

SPY++を用いメッセージを探しフックする過程が掲載されているHPは参考になります。

2007/03/02 10:20:19

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません