tagCANDY CGI VBレスキュー(花ちゃん) - VBレスキュー(花ちゃん)の投稿サンプル用掲示板 - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
VBレスキュー(花ちゃん)の投稿サンプル用掲示板
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
SendInput関数のDLL化によるマウス操作の簡単自動化(VB.NET) ( No.0 )  [親スレッドへ]
日時: 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

 画像をクリックすると元のサイズで見る事ができます。



 [スレッド一覧へ] [親スレッドへ]