mouse_event 模拟鼠标单击问题

terry6394 2004-10-05 01:39:06
我想用mouse_event模拟鼠标单击制定区域.
我的代码如下:

mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP Or MOUSEEVENTF_ABSOLUTE, 300 * 65535 / 1024, 300 * 65535 / 768, 0&, 0&

运行结果只是原地单击,为什么不能单击到指定的区域(300,300)呢?!
...全文
207 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
terry6394 2004-10-05
  • 打赏
  • 举报
回复
还是得动鼠标啊
laviewpbt 2004-10-05
  • 打赏
  • 举报
回复
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 Const MOUSEEVENTF_LEFTDOWN = &H2 ' left button down
Private Const MOUSEEVENTF_LEFTUP = &H4 ' left button up
Private Type POINTAPI
x As Long
y As Long
End Type
Private Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
Private Sub Command1_Click()
Dim po As POINTAPI
po.x = 300: po.y = 300
SetCursorPos po.x, po.y
mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
End Sub

laisiwei 2004-10-05
  • 打赏
  • 举报
回复
用or连接是可以的

不过鼠标的位置不变的问题我也碰到过,不知道怎么回事.可以用setcursor代替
terry6394 2004-10-05
  • 打赏
  • 举报
回复
我先试试..
techgopher 2004-10-05
  • 打赏
  • 举报
回复
先setcursor到你想要的位置,然后
mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0

不过你这样把MOUSEEVENTF_LEFTDOWN和MOUSEEVENTF_LEFTUP or在一起行吗?要一个一个的来吧?
laviewpbt 2004-10-05
  • 打赏
  • 举报
回复
Option Explicit
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
Private Type POINTAPI
x As Long
y As Long
End Type
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_MOVE = &H1
Const MOUSEEVENTF_ABSOLUTE = &H8000

Private Sub Command1_Click()
Dim po As POINTAPI
GetCursorPos po
mouse_event MOUSEEVENTF_MOVE, 100, 100, 0&, 0&
mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP Or MOUSEEVENTF_ABSOLUTE, 0, 0, 0&, 0&
SetCursorPos po.x, po.y
End Sub

1,486

社区成员

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

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