- 日時: 2012/03/13 13:51
- 名前: VBレスキュー(花ちゃん)
- ***********************************************************************************
* カテゴリー:[マウス][][] * * キーワード:マウス操作,mouse_event,マウスジェスチャー,マウスクリック,SendInput * *********************************************************************************** タイトル :SendInput関数のDLL化によるマウス操作の簡単自動化 SampleNo :437 投 稿 日 :2012/02/13 2012/03/13 機能追加 投 稿 者 :VBレスキュー(花ちゃん) ----------------------------------------------------------------------------------- 下記のサンプル投稿用掲示板のマウス操作の自動化(SendInput 関数使用例) (VB.NET) でも 紹介しておりますが、使い方を含め少し複雑なのでよく使用する機能だけにしてDLL化し 簡単に使えるようにして見ました。 http://hanatyan.sakura.ne.jp/patio/read.cgi?no=246
2012/03/13 機能追加 マウスのクリック操作後のマウスカーソルの位置を指定できるように追加しました。 (別途、マウス操作とキーボード操作を一体にしたDLL(未公開)も作成しました。)
使用するDLLは下記よりダウンロードしてEXEと同じフォルダーに解凍しておいて下さい。 http://www.hanatyan.sakura.ne.jp/freesoft/SendMouse.zip
DLLは、WindowsVista VB2010(VS2010 Pro) Framework 2.0 / ターゲットCPU:X86 で作成し、 VB2010で動作確認しておりますが、環境の違い等で動作不良等がありましたら、雑談掲示板の 方にでもご一報頂けると幸いかと存じます。
------------------------------------------------------------------------------------ 尚、下記サンプルは、関数の動作を確認する為にカーソル移動・ボタンをクリックしておりますが その事が目的ではありませんので誤解無き様願います。 使用するコントロールは、下図を参照に適当に配置して下さい。 このDLLを使用する事により、面倒なAPI関数の宣言や動作の為のプログラムを書く事もなくなりました。 '--------------------------------------------------------------------------------------------------- '別途、ダウンロードして解凍した、SendMouse.dll と SendMouse.xml をこのEXEの起動フォルダーに入れ 'プロジェクト→参照の追加→参照タブ→で、SendMouse.dllを保存場所より選択して参照設定しておいて下さい。 '========1=========2=========3=========4=========5=========6=========7=========8=========9=========0
Public Class Form1
#Region "本文関係の処理"
'SendMouse.dll を参照設定しておいて下さい。 Public Si As New SendMouse.Helper
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
' <summary> ' マウスを指定位置に移動しクリック操作を行うメソッド ' </summary> ' <param name="pos1">移動先(クリックする位置)の絶対座標</param> ' <param name="pos2">クリック後のマウスの移動先の絶対座標</param> ' <param name="op1">op1=0 は左クリック(既定) op1=1 は右クリック op1=2 はダブルクリック</param> ' <param name="op2">op2=0 元へ戻らない(既定) op2=1 マウスカーソルは元の位置に戻る</param>
'Button1 コントロールのスクリーン座標を取得してButton1をクリック '(クリック後は、マウスカーソル位置は、クリック位置に移動したまま) Si.SendMouse(GetMiddleCenter(Button1)) End Sub Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click 'タイトルバーのスクリーン座標を指定してタイトルバーを右クリック '(クリック後は、マウスカーソル位置は、元の位置に戻る) Si.SendMouse(New Point(Me.Left + 200, Me.Top + 15), Cursor.Position, 1, 1) End Sub
Private Sub Button4_Click(sender As System.Object, e As System.EventArgs) Handles Button4.Click 'タイトルバーのスクリーン座標を指定してタイトルバーをダブルクリック '(クリック後は、マウスカーソル位置は、指定の位置へ移動する) Si.SendMouse(New Point(Me.Left + 200, Me.Top + 15), New Point(500, 10), 2, 1) End Sub
#End Region
#Region "クリック位置の取得及びクリックの確認"
''' <summary>コントロールのスクリーン座標を取得するメソッド</summary> ''' <param name="ctl">コントロール名</param> ''' <returns>コントロールの中心の絶対座標</returns> Private Function GetMiddleCenter(ByVal ctl As Control) As Point 'コントロールの中央の絶対座標(スクリーン座標)を求める Dim Cpos As Point = ctl.ClientRectangle.Location Dim Spos As Point = ctl.PointToScreen(Cpos) Dim po As Point po.X = Spos.X + (ctl.Width \ 2) - 2 po.Y = Spos.Y + (ctl.Height \ 2) - 2 Return po End Function
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click MessageBox.Show("Button1 がクリックされました。") End Sub
#End Region
End Class
画像をクリックすると元のサイズで見る事ができます。
|