如何用API模拟一次鼠标单击事件呀?

VBDN 2004-12-27 05:12:45
如题
...全文
248 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
VBDN 2004-12-29
  • 打赏
  • 举报
回复
哎,我这20分白送你们了!
正确的代码:
SetCursorPos 71, 44 '光标定位71,44
mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 '单击鼠标左键
laviewpbt 2004-12-28
  • 打赏
  • 举报
回复
楼上的方法我前几天就想说,但是这样好象是有点击的外观效果,但并不执行任何代码,似乎需要先把鼠标移到模拟点击的位置,才有响应。比如下面的代码:
Const WM_LBUTTONDOWN = &H201
Const WM_LBUTTONUP = &H202
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function GetTickCount Lib "kernel32" () As Long

Private Sub Command2_Click()
MsgBox "you clicked me"
End Sub
Private Sub Timer1_Timer()
tmp = SendMessage(Command2.hwnd, WM_LBUTTONDOWN, 0, 0)
TickCount = GetTickCount()
While GetTickCount() - TickCount < 200
tmp = DoEvents()
Wend
tmp = SendMessage(Command2.hwnd, WM_LBUTTONUP, 0, 0)
End Sub

如果鼠标不在command2的上方,则每次timer事件触发的时候command2上都有一虚线框,但并没有弹出任何对话框,而当鼠标在command2的上方,则可以。

留下些什么 2004-12-28
  • 打赏
  • 举报
回复
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_MOVE = &H1 ' mouse move
Const MOUSEEVENTF_MIDDLEDOWN = &H20 ' middle button down
Const MOUSEEVENTF_MIDDLEUP = &H40 ' middle button up
Const MOUSEEVENTF_RIGHTDOWN = &H8 ' right button down
Const MOUSEEVENTF_RIGHTUP = &H10 ' right button up
Const MOUSEEVENTF_LEFTDOWN = &H2 ' left button down
Const MOUSEEVENTF_LEFTUP = &H4 ' left button up

mouse_event MOUSEEVENTF_LEFTDOWN , X, Y, 0, 0

mouse_event MOUSEEVENTF_LEFTUP, X, Y, 0, 0
xinliangyu 2004-12-28
  • 打赏
  • 举报
回复
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

SendMessage lWnd, &H201, 0&, 0&'鼠标按下
SendMessage lWnd, &H202, 0&, 0& '鼠标释放

1,488

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧