[リストへもどる]
一括表示

投稿時間:2003/07/10(Thu) 21:54
投稿者名:Pana
Eメール:
URL :
タイトル:
マウスクリックのイベント
初めまして、Panaと申します。
マウスのコマンドを登録して、再生できるソフトを組んでいます。
マウスの現在位置はAPIを使って

Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
GetCursorPos Po
Picture1.Print "X=" & Po.X
Picture1.Print "Y=" & Po.Y

の方法で習得できるのですが、クリックのイベントがわからなくてクリックした位置を
習得できないでいます。

マウスを動かすのとクリックさせることは出来ています。
どうかよろしくお願いします。

投稿時間:2003/07/10(Thu) 23:19
投稿者名:Say
Eメール:
URL :
タイトル:
Re: マウスクリックのイベント
WM_LBUTTONDOWNをグローバルフックして
拾いまくるdllをVC++で作るとか・・・。

投稿時間:2003/07/10(Thu) 23:33
投稿者名:Pana
Eメール:
URL :
タイトル:
Re^2: マウスクリックのイベント
> 拾いまくるdllをVC++で作るとか・・・。
残念ながら当方C言語は全くわからないのです・・・・・
DLLを作ったらと言うことは、VB+APIと言う形では出来ないのですか?

投稿時間:2003/07/11(Fri) 00:00
投稿者名:Say
Eメール:
URL :
タイトル:
Re^3: マウスクリックのイベント
限定的でいいなら、SetCaputure(API)でマウスキャプチャーすればいいかと・・・。
ヘルプ(プラットフォームSDK)見ればわかりますが、
引用-------------------------------------------------------
マウスをキャプチャーしている場合でも、ほかのスレッドで作成されたウィンドウ上で
マウスボタンが押されると、システムはそちらのウィンドウにメッセージを送ります。
-------------------------------------------------------引用終わり
他アプリのクリックを拾えないってことです。
これを拾いたかったら、グローバルマウスフックする必要があり、
グローバルフックするにはフックプロシージャをdllに置く必要があり、
VBではdllを作れないので、VBのみでは不可能ということになります。

Cの参考資料なら、猫でもわかるプログラミング にあります。
第101章 マウス・キャプチャー
http://www.kumei.ne.jp/c_lang/sdk2/sdk_101.htm
第160章 メッセージフックの基礎
http://www.kumei.ne.jp/c_lang/sdk2/sdk_160.htm
第161章 キーボード・フック
http://www.kumei.ne.jp/c_lang/sdk2/sdk_161.htm
第162章 マウス・フック
http://www.kumei.ne.jp/c_lang/sdk2/sdk_162.htm

未確認ですが、うわさによると、codeguruあたりにVBのみで
グローバルフックする方法が公開されていると聞いたことありますので、
チャレンジしたいなら、探してみてください。
(そんな方法があったとしても、VC++でやったほうが楽なような気がしますが・・・。)

投稿時間:2003/07/11(Fri) 00:17
投稿者名:Pana
Eメール:
URL :
タイトル:
Re^4: マウスクリックのイベント
ありがとうございます。
サンプル見ながらDLL制作してみます。
これからもよろしお願いします。

投稿時間:2003/07/11(Fri) 00:45
投稿者名:Say
Eメール:
URL :
タイトル:
Re^5: マウスクリックのイベント
> サンプル見ながらDLL制作してみます。
グローバルフック(システムフック、ウィンドウフック)は
結構危険行為ですから、フックの仕組みをよく理解して
作ったほうがよろしいかと・・・。
簡単にフリーズしたりしますので・・・。

参考までに

窓プログラミング
グローバルフックを使う
http://hp.vector.co.jp/authors/VA016117/hook.html

かぶすたじお Codian
フックのしくみ
http://www.kab-studio.com/Programing/Codian/DLL_Hook_SClass/06.html
ローカルフック
http://www.kab-studio.com/Programing/Codian/DLL_Hook_SClass/07.html
システムフック
http://www.kab-studio.com/Programing/Codian/DLL_Hook_SClass/08.html

M.Oshikiri's HomePage
VBでマウスジェスチャ(フック)
http://www.geocities.co.jp/SiliconValley/7406/tips/mouse/