- ベストアンサー
左クリックさせるプログラム
初歩的な質問で申し訳ありませんがマウスを左クリックさせるプログラムを教えてください。(クリック時イベントではありません) 他のアプリケーションのボタンを押したり押しっぱなしにするプログラムをつくりたいのです。お願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>左クリックさせる 方法は大きくわけて二つあります。 1.SendMessage関数 Const BN_CLICKED = 0 Call SendMessage(CommandButton.hWnd,BN_CLICKED,0,0) だったかな? ボタンに直接クリックメッセージを送信する方法です。 2.はmouse_event関数 http://www.microsoft.com/JAPAN/developer/library/jpuipf/_win32_mouse_event.htm しばらく使ってないから忘れたけど、確かマウスが自動で移動されてしまうような・・・かなりあいまいです・・・ >押しっぱなしにする Const WM_LBUTTONDOWN = &H201 Call SendMessage(CommandButton.hWnd,WM_LBUTTONDOWN,0,0) すべて未検証です。今VB環境がないので・・・
その他の回答 (3)
- todo36
- ベストアンサー率58% (728/1234)
そのボタンにメッセージを投げればいいのだが、SendMessageだと そのボタンのウインドウハンドル(hWnd)を取得するのが厄介です。 # 不可能ではないとは思います。 VC付属のSpy++でそのボタンのコントロールIDを調べて、 Call SendDlgItemMessage(コントロールID,BN_CLICKED,0,0) でどうでしょうか?(未検証)
お礼
回答ありがとうございます。だいたいのあらましはわかりました。でも私にはかなりむつかしそうです。でもチャレンジしてみます。
- zerosix
- ベストアンサー率31% (47/149)
私ならAPIを使います。確かにCでやるほうが楽ですね。 以前、表示させているダイアログのOKボタンを自動で(プログラムから)押下 するプログラムを作成しましたが、その時は#1のおっしゃるようにしました。 ウィンドウハンドルを取得するのは、FindWindow OKメッセージを送信するのはSendMessage これらのAPIを駆使してVCでやりました。 OKメッセージを送信する個所を左クリックメッセージに変えれば できるかと思います。
お礼
回答ありがとうございます。だいたいのあらましはわかりました。でも私にはかなりむつかしそうです。でもチャレンジしてみます。
- y_herohero
- ベストアンサー率30% (72/239)
いえいえかなり高度な質問だと思われます。 簡単なフローとしては、 1.他のアプリケーションのウィンドウハンドルを取得する。 2.そのハンドルのボタンイベントに対して左クリックイベントを投げる。 です。 しかし詳細はとてもここには書ききれません。 P.S. 私ならこれをVBでやるのはやだなぁ…。 C++で作っちゃいます。
お礼
回答ありがとうございます。だいたいのあらましはわかりました。でも私にはかなりむつかしそうです。でもチャレンジしてみます。
お礼
回答ありがとうございます。だいたいのあらましはわかりました。でも私にはかなりむつかしそうです。でもチャレンジしてみます。