【发布时间】:2016-10-20 21:37:29
【问题描述】:
我正在尝试在第 3 方应用程序(不受我控制)被激活(最顶层的程序)时移动鼠标。理想情况下,我想相对于当前位置移动鼠标,但使用绝对位置并不难转换。这是我目前使用的;
<DllImport("user32.dll")> _
Private Shared Sub mouse_event(dwFlags As UInteger, dx As UInteger, dy As UInteger, dwData As UInteger, dwExtraInfo As Integer)
End Sub
Public Sub MoveMouse(ByVal xPos As Long, ByVal yPos As Long)
mouse_event(MOUSEEVENTF_MOVE, xPos, yPos, 0, 0)
End Sub
Public Const MOUSEEVENTF_MOVE = &H1
它被称为;
MoveMouse(100, 100)
现在我的问题是我的鼠标在 y 中移动,但在 x 中没有。我尝试了一些故障排除,结果发现调用中的第一个值 (xPos) 实际上是在 y 中移动的距离,而不是 x。 yPos 不做任何事情。 例如下面的代码将鼠标向下移动 50 像素;
MoveMouse(50, 0)
我做错了什么?
【问题讨论】:
-
把你定义的
MOUSEEVENTF_MOVE. -
@Aybe woopse.. 谢谢!我现在已将其添加到问题中。
-
为我工作。虽然,xPos 和 Ypos 应该声明为
UInt32。
标签: vb.net mouseevent