玄関へお回り下さい。
マウスのボタンをプログラム上から操作(クリック)する (2個)           (SNo.098)
使用コントロール Button1  Button2   Button3
その他条件 WindowsXP(Vista) Visual Basic 2005(VB2008)
 
★ マウスのボタンをプログラム上から操作する

API関数の宣言部分
 
'マウスを擬似的に動作させる(P1044)
<System.Runtime.InteropServices.DllImport("USER32.DLL")> _
Private Shared Sub mouse_event( _
   
ByVal dwFlags As IntegerByVal dx As Integer, _
   
ByVal dy As IntegerByVal cButtons As Integer, _
   
ByVal dwExtraInfo As Integer)
End Sub

Private Const MOUSEEVENTF_LEFTUP As Integer = &H4      '左ボタンUP
Private Const MOUSEEVENTF_LEFTDOWN As Integer = &H2    '左ボタンDown
Private Const MOUSEEVENTF_RIGHTUP As Integer = &H10    '右ボタンUP
Private Const MOUSEEVENTF_RIGHTDOWN As Integer = &H8   '左ボタンDown

Private Sub Button1_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button1.Click
'マウスカーソルを Button3 上に移動してクリックします。
    Cursor.Position = New Point(Me.Left + Button3.Left + 50, Me.Top + _
                            SystemInformation.CaptionHeight + Button3.Top + 20)
    'マウスの左ボタンを押す
    Call mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
    'マウスの左ボタンを離す
    Call mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button2.Click
'マウスカーソルを TextBox1 上に移動して右クリックします。
    Cursor.Position = New Point(Me.Left + TextBox1.Left + 10, Me.Top + _
                            SystemInformation.CaptionHeight + TextBox1.Top + 10)
    'マウスの右ボタンを押す
    Call mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0)
    'マウスの右ボタンを離す
    Call mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0)
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button3.Click
    MessageBox.Show("マウスが Button3 上でクリックされました。")
End Sub

本来は、SendInput API関数を使用した方が安全なのですが、少し複雑なので今回は、mouse_event APIを使用しております。
SendInput API関数を使用した方法は下記のサンプル投稿用掲示板の方に掲載しておりますのでそちらをご覧になって下さい。
(できれば mouse_event API は使用しないで下さい)

 マウス操作の自動化(SendInput 関数使用例) (VB.NET)

 SendInput関数のDLL化によるマウス操作の簡単自動化(VB.NET)




2004/07/06
2005/10/19
2012/02/13

VBレスキュー(花ちゃん)
VB.NET2003/VB2005/VB2008/VB2010