Public Const WM_MOUSEMOVE = &H200
PostMessage Hwndrect, WM_MOUSEMOVE, &00, 0
PostMessage Hwndrect, &H201, &H1, 0
PostMessage Hwndrect, &H202, &00, 0
不知道为什么这段代码不能实现后台鼠标点击,如果“PostMessage Hwndrect, WM_MOUSEMOVE, &00, 0”这句不要,将鼠标移到目标窗口上就可以点击,但是如果要这句,无论鼠标有无移到目标窗口都不行,请教一下怎样才能实现鼠标的后台点击呢?
PostMessage Hwndrect, WM_MOUSEMOVE, &00, p
PostMessage Hwndrect, &H201, &H1, p
PostMessage Hwndrect, &H202, &00, p加上鼠标位置后C\参数P后也不行
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As LongPrivate Const WM_LBUTTONDOWN = &H201Private Const WM_LBUTTONUP = &H202
Private Sub Command1_Click()
PostMessage Command1.hwnd, &H201, 0&, 0&
PostMessage Command1.hwnd, &H202, 0&, 0&End SubPrivate Sub Command2_Click() MsgBox "ok"End Sub
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As LongPrivate Const WM_LBUTTONDOWN = &H201Private Const WM_LBUTTONUP = &H202
Private Sub Command1_Click()
PostMessage Command2.hwnd, &H201, 0&, 0&
PostMessage Command2.hwnd, &H202, 0&, 0&End SubPrivate Sub Command2_Click() MsgBox "ok"End Sub
用 ClientToScreen 换算成屏幕坐标,然后用 SetCursorPos 真正更改鼠标位置,最后才发送你的模拟消息。
lz是否获取的句柄有问题?Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As LongPrivate Const WM_MOUSEMOVE = &H200Private Const WM_LBUTTONDOWN = &H201Private Const WM_LBUTTONUP = &H202Private Sub Command1_Click()
PostMessage Command2.hwnd, &H200, 0&, 0&
PostMessage Command2.hwnd, &H201, 0&, 0&
PostMessage Command2.hwnd, &H202, 0&, 0&
End SubPrivate Sub Command2_Click()
MsgBox "ok"
End Sub
'上面的是声明部分.只有声明了,才可以使用..
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As LongPrivate Const WM_MOUSEMOVE = &H200Private Const WM_LBUTTONDOWN = &H201Private Const WM_LBUTTONUP = &H202Private Sub Command1_Click()
PostMessage Command2.hwnd, WM_MOUSEMOVE, 0&, 0&
PostMessage Command2.hwnd, WM_LBUTTONDOWN, 0&, 0&
PostMessage Command2.hwnd, WM_LBUTTONUP, 0&, 0&
End SubPrivate Sub Command2_Click()
MsgBox "ok"
End Sub
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
我之前的声明没有红色字体那个字母,但是VB不报错,声明原因呢?