2016-03-30 6 views

答えて

0

これらの作業のどちらもあなたのためならば、私は、その後、Autoitまたはautohotkeyのようなものを使用して、あなたがクリックを行うマクロを書くことができAutoHotkeyをを使用してお勧めし

Dim x 
set x=createobject("wscript.shell") 

x.sendkeys"{CLICK LEFT,50,60}" 

または

x.SendKeys("+{F10}") 'for a right click 

をお試しくださいVBScriptからスクリプトを呼び出します。

0

VBScriptだけでは不可能です。 nircmdのようなサードパーティツールを使用する必要があります。マウスを操作するには、setcursorsetcursorwinmovecursor、およびコマンドを使用できます。

例えば、ここでは(左上から測定)座標と右クリックを実行し、画面にカーソルを移動する方法は次のとおりです。

With CreateObject("WScript.Shell") 
    .Run "nircmd setcursor 100 100", 0, True 
    .Run "nircmd sendmouse right click", 0, True 
End With 

は、パラメータ情報のためdocumentationを参照してください。

3

ここでは、VBA for Excelで(相対参照を使用して)ウィンドウに左クリックまたは右クリックを送信するルーチンがあります。 AppActivateと同様に、ウィンドウタイトルが必要です。あなたはSendClickルーチンを呼び出す

引数は次のとおりです。

  • ウィンドウタイトル(文字列)
  • ボタン(1 =左、2 =右、-1 =移動、マウスのみ、ノークリック) (左側のウィンドウに対する相対位置)
  • X
  • Y(ウィンドウの上部への相対位置)

お楽しみください!

'Declare mouse events 
Public Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long 
Public 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) 
Public Const MOUSEEVENTF_LEFTDOWN = &H2 
Public Const MOUSEEVENTF_LEFTUP = &H4 
Public Const MOUSEEVENTF_RIGHTDOWN As Long = &H8 
Public Const MOUSEEVENTF_RIGHTUP As Long = &H10 
'Declare sleep 
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 

' Window location 
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long 
Public Declare Function GetWindowRect Lib "user32" (ByVal hWnd As Long, lpRect As RECT) As Long 
Type RECT 
    Left As Long 
    Top As Long 
    Right As Long 
    Bottom As Long 
End Type 

Public Function WindowHandle(ByVal sTitle As String) As Long 
    WindowHandle = FindWindow(vbNullString, sTitle) 
End Function 

Public Sub SendClick(sWnd As String, b As Integer, x As Long, y As Long) 
    Dim pWnd As Long, pRec As RECT 

    pWnd = WindowHandle(sWnd) 
    GetWindowRect pWnd, pRec 

    SetCursorPos pRec.Left + x, pRec.Top + y 
    Sleep 50 
    If b = 2 Then 
     mouse_event MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0 
     Sleep 50 
     mouse_event MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0 
    ElseIf b <> -1 Then 
     mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 
     Sleep 50 
     mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 
    End If 
End Sub 
関連する問題