VB后台点击,执行窗口指定位置点击.就是相对坐标.问题

来源:百度知道 编辑:UC知道 时间:2024/05/24 17:17:31
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Type POINTAPI
X As Long
Y As Long
End Type

Dim game As Long

Private Sub Command1_Click()
Dim a As Long, b As Long
Dim point As POINTAPI
a = 400
b = 300
X = point.X
Y = point.Y

game = FindWindow(vbNullString, "xxx执行窗口")
ClientToScreen game, point.X, point.Y

mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 '模拟鼠标的左键单击!
End Sub

哪里错了。谢谢高手解答。或者给一个好的代码。完整一点。
我是用api的 ClientToScreen函数。如果其他可以的话。请告诉我一下。谢谢

Option Explicit

'在VB窗体上添加两个CommandButton,使用默认名称,即可观察测试效果
Private Type POINTAPI
X As Long
Y As Long
End Type

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function ClientToScreen Lib "user32" (ByVal hWnd As Long, lpPoint As POINTAPI) As Long
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)
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long

Const MOUSEEVENTF_LEFTDOWN = &H2
Const MOUSEEVENTF_LEFTUP = &H4
Const MOUSEEVENTF_MIDDLEDOWN = &H20
Const MOUSEEVENTF_MIDDLEUP = &H40
Const MOUSEEVENTF_MOVE