Private Declare Sub mouse_event Lib "user32"
(ByVal dwFlags As Long, _ ByVal dx As Long, ByVal dy As Long, _ ByVal cButtons As Long, _ ByVal dwExtraInfo As Long) Const MOUSEEVENTF_LEFTDOWN = &H2 Const MOUSEEVENTF_LEFTUP = &H4 Const MOUSEEVENTF_MIDDLEDOWN = &H20 Const MOUSEEVENTF_MIDDLEUP = &H40 Const MOUSEEVENTF_RIGHTDOWN = &H8 Const MOUSEEVENTF_RIGHTUP = &H10 Private Declare Function GetAsyncKeyState Lib "user32" _ (ByVal vKey As Long) As Integer Private Sub Timer1_Timer() 'butt1 = GetAsyncKeyState(1) butt2 = GetAsyncKeyState(4) 'butt3 = GetAsyncKeyState(2) If butt2 < 0 Then 'next two lines simulate doubleclick mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0&, 0&, cButt, dwEI mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0&, 0&, cButt, dwEI Do While GetAsyncKeyState(4) < 0 DoEvents Loop End If End Sub Assumes: Program needs one timer control with short time interval Side Effects: Some mouse drivers have other purposes with middle mouse button (such as Logitech on scrollboxes) which may interfere with execution of the program |