掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
マウスをクリックしたことにするには? (ID:105016)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
mouse_eventはアクティブウィンドウに対しメッセージを 送りつけますから、mouse_eventを使うなら、 まずアクティブにする必要があります。 単に指定したソフトのボタンを自動でクリックしたことにしたいのなら、 そのボタンのhWndを取得して、WM_LBUTTONDOWN,WM_LBUTTONUP あたりをSendMessageすればいいでしょう。 これならアクティブでなくても動作します。 そうではなく、「画面上のある座標をクリックしたら、たまたまその座標に あるボタンをクリックしたことにしたい」のなら、 相当面倒なことになるでしょう。 たぶん、押したことにしたい座標をを取得し、 その座標に存在するウィンドウを調べ、 そのウィンドウ内のボタンウィンドウを調べ、 座標と重なるボタンウィンドウがあったら そのボタンのhWndを調べ、hWndがわかったら はじめてSendMessageできます。 そうではなく「マウス動作を記録したい」だけなら グローバルフックして、「記録開始」から「記録終了」までの マウス関連のメッセージを拾い上げればいいでしょう。 勿論、対象アプリのhWndは起動のたびに変化しますから、 記録したメッセージをそのまま再利用することはできません。 「記録開始」したときに、送りつけている相手のhWndから、 アプリを特定しておき、記録を再利用するときは、 まずそのアプリのウィンドウが存在しているかどうかチェックし、 存在していたらhwndを取得し、すげかえてやらねばなりません。 基本的に、APIはC/C++での使用を前提としています。 もっともいい資料はプラットフォームSDKと VC++のヘッダファイルですが、VBを想定していません。 (特にVCのヘッダは、定数の値を知るのに重要です。) また、APIのなかにはVBで利用可能なものと不可能なものがあります。 たとえば上記説明の「グローバルフック」はVBではできません。 即ち、APIを使いこなすにはC/C++の知識が不可欠ということです。 しかし宣言程度でしたら、若干の問題はありますがAPIビューアで調べられます。 また、VBでAPIを利用した簡単なサンプルなら ●vbvbvb.com http://www.vbvbvb.com/jp/gtips/index.html に1000以上ありますから、運がよければサンプルが見つかることもあります。 VBユーザ向けの一般的(でもないか・・・)なAPI解説記事は ●PCDN Visual Basic WorkGroup http://www.int21.co.jp/pcdn/vb/ ●Galliverテクニカルライティング http://www.galliver.co.jp/writing/vbmagazine.html にあります。APIについて理解を深めたいならどうぞ。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.