【发布时间】:2018-09-26 19:31:40
【问题描述】:
我有以下控制鼠标的代码(修改自this source):
Public Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
Public 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)
Public Const MOUSEEVENTF_LEFTDOWN = &H2
Public Const MOUSEEVENTF_LEFTUP = &H4
Public Const MOUSEEVENTF_RIGHTDOWN As Long = &H8
Public Const MOUSEEVENTF_RIGHTUP As Long = &H10
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub Control()
Wait 3000
Pos 6, 145
Down
Pos 6, 149
Up
Pos 7, 147
Down
Up
Pos 8, 145
Down
Pos 8, 149
Up
Pos 10, 145
Down
Pos 10, 149
Up
Pos 11, 145
Down
Pos 12, 145
Up
Pos 11, 147
Down
Up
Pos 11, 149
Down
Pos 12, 149
Up
Pos 14, 145
Down
Pos 14, 149
Up
Pos 15, 149
Down
Pos 16, 149
Up
Pos 18, 145
Down
Pos 18, 149
Up
Pos 19, 145
Down
Pos 20, 145
Up
Pos 20, 146
Down
Pos 20, 146
Up
Pos 19, 147
Down
Pos 20, 147
Up
End Sub
Private Function Wait(Optional ByVal milliseconds As Long = 50)
Sleep milliseconds
End Function
Private Function Pos(ByVal x As Long, ByVal y As Long)
SetCursorPos x, y
End Function
Private Function Down()
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
End Function
Private Function Up()
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
End Function
它按预期工作,可以在油漆上绘画。
现在我想要完成的是在游戏 VRChat 中以 3D 绘图,将鼠标置于屏幕中间。
在游戏中,鼠标的向下和向上事件起作用,但试图改变它的位置却根本不会移动它。
该代码在游戏外有效,但在游戏中无法移动由鼠标控制的相机。我正在寻找的是能够使用代码自动在游戏中移动鼠标/相机。
【问题讨论】:
-
相对于什么?
-
相对于当前光标所在位置