• ベストアンサー

左クリックさせるプログラム

初歩的な質問で申し訳ありませんがマウスを左クリックさせるプログラムを教えてください。(クリック時イベントではありません) 他のアプリケーションのボタンを押したり押しっぱなしにするプログラムをつくりたいのです。お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.3

>左クリックさせる 方法は大きくわけて二つあります。 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環境がないので・・・

torukun
質問者

お礼

回答ありがとうございます。だいたいのあらましはわかりました。でも私にはかなりむつかしそうです。でもチャレンジしてみます。

その他の回答 (3)

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.4

そのボタンにメッセージを投げればいいのだが、SendMessageだと そのボタンのウインドウハンドル(hWnd)を取得するのが厄介です。 # 不可能ではないとは思います。 VC付属のSpy++でそのボタンのコントロールIDを調べて、 Call SendDlgItemMessage(コントロールID,BN_CLICKED,0,0) でどうでしょうか?(未検証)

torukun
質問者

お礼

回答ありがとうございます。だいたいのあらましはわかりました。でも私にはかなりむつかしそうです。でもチャレンジしてみます。

  • zerosix
  • ベストアンサー率31% (47/149)
回答No.2

私ならAPIを使います。確かにCでやるほうが楽ですね。 以前、表示させているダイアログのOKボタンを自動で(プログラムから)押下 するプログラムを作成しましたが、その時は#1のおっしゃるようにしました。 ウィンドウハンドルを取得するのは、FindWindow OKメッセージを送信するのはSendMessage これらのAPIを駆使してVCでやりました。 OKメッセージを送信する個所を左クリックメッセージに変えれば できるかと思います。

torukun
質問者

お礼

回答ありがとうございます。だいたいのあらましはわかりました。でも私にはかなりむつかしそうです。でもチャレンジしてみます。

回答No.1

いえいえかなり高度な質問だと思われます。 簡単なフローとしては、 1.他のアプリケーションのウィンドウハンドルを取得する。 2.そのハンドルのボタンイベントに対して左クリックイベントを投げる。 です。 しかし詳細はとてもここには書ききれません。 P.S. 私ならこれをVBでやるのはやだなぁ…。 C++で作っちゃいます。

torukun
質問者

お礼

回答ありがとうございます。だいたいのあらましはわかりました。でも私にはかなりむつかしそうです。でもチャレンジしてみます。

関連するQ&A