OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

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

  • 暇なときにでも
  • 質問No.178760
  • 閲覧数1361
  • ありがとう数4
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 41% (14/34)

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

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

  • 回答No.3
レベル12

ベストアンサー率 65% (276/422)

>左クリックさせる
方法は大きくわけて二つあります。

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

お礼率 41% (14/34)

回答ありがとうございます。だいたいのあらましはわかりました。でも私にはかなりむつかしそうです。でもチャレンジしてみます。
投稿日時 - 2001-12-04 11:47:56
-PR-
-PR-

その他の回答 (全3件)

  • 回答No.1
レベル11

ベストアンサー率 30% (72/239)

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

簡単なフローとしては、
1.他のアプリケーションのウィンドウハンドルを取得する。
2.そのハンドルのボタンイベントに対して左クリックイベントを投げる。
です。

しかし詳細はとてもここには書ききれません。

P.S.
私ならこれをVBでやるのはやだなぁ…。
C++で作っちゃいます。
お礼コメント
torukun

お礼率 41% (14/34)

回答ありがとうございます。だいたいのあらましはわかりました。でも私にはかなりむつかしそうです。でもチャレンジしてみます。
投稿日時 - 2001-12-04 11:51:04
  • 回答No.2
レベル10

ベストアンサー率 31% (47/149)

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

以前、表示させているダイアログのOKボタンを自動で(プログラムから)押下
するプログラムを作成しましたが、その時は#1のおっしゃるようにしました。

ウィンドウハンドルを取得するのは、FindWindow
OKメッセージを送信するのはSendMessage

これらのAPIを駆使してVCでやりました。
OKメッセージを送信する個所を左クリックメッセージに変えれば
できるかと思います。
お礼コメント
torukun

お礼率 41% (14/34)

回答ありがとうございます。だいたいのあらましはわかりました。でも私にはかなりむつかしそうです。でもチャレンジしてみます。
投稿日時 - 2001-12-04 11:49:34
  • 回答No.4
レベル13

ベストアンサー率 59% (729/1235)

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

VC付属のSpy++でそのボタンのコントロールIDを調べて、

Call SendDlgItemMessage(コントロールID,BN_CLICKED,0,0)

でどうでしょうか?(未検証)
お礼コメント
torukun

お礼率 41% (14/34)

回答ありがとうございます。だいたいのあらましはわかりました。でも私にはかなりむつかしそうです。でもチャレンジしてみます。
投稿日時 - 2001-12-04 11:50:32
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ