我正在编写一个应用程序,它从正在阅读Wii Nunchuk的Arduino接收数据。正在接收和解析数据但是当我使用MOUSEEVENTF_MOVE发送数据时,鼠标只接收dx中的数据而不是dy,这意味着只能上下移动。我尝试使用静态值(例如100)作为dy但仍然没有成功。
DllImport代码:
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto, CallingConvention:=CallingConvention.StdCall)> _
Public Sub mouse_event(dwFlags As Long, dx As Long, dy As Long, dwData As Long, dwExtraInfo As Long)
End Sub
Private Const MOUSEEVENTF_MOVE As Integer = &H1
用于移动鼠标的代码:
mouse_event(MOUSEEVENTF_MOVE, dx, dy, 0, 0)
除非mouse_event sub布局错误,否则我不知道我做错了什么。
答案 0 :(得分:2)
关于相对运动的微软:
系统对指定的相对鼠标移动应用两个测试。如果沿x轴或y轴的指定距离大于第一个鼠标阈值,并且鼠标速度不为零,则系统将距离加倍。如果沿x轴或y轴的指定距离大于第二个鼠标阈值,并且鼠标速度等于2,则系统将应用第一个阈值测试所产生的距离加倍。因此,系统可以沿x或y轴将指定的相对鼠标移动乘以最多四次。
所以你最好使用
Cursor.Position() = New Point(X, Y)
瓦尔特