如何在LUA中设置MoveMouseRelative函数的执行时间?
我是编程新手,需要问一个问题。 因此,加载在logitech鼠标中的代码以给定的速度将其下拉:如何在LUA中设置MoveMouseRelative函数的执行时间?,lua,logitech-gaming-software,Lua,Logitech Gaming Software,我是编程新手,需要问一个问题。 因此,加载在logitech鼠标中的代码以给定的速度将其下拉: MoveMouseRelative(0,3) Sleep(25) 问题的实质:在切换到另一个功能之前,如何设置此功能工作的准确时间(毫秒),可能如下所示: MoveMouseRelative(0,1) Sleep(18) 所以,鼠标以一种速度移动一段时间,然后切换到另一种速度。 以下是要修复的代码: E
MoveMouseRelative(0,3)
Sleep(25)
问题的实质:在切换到另一个功能之前,如何设置此功能工作的准确时间(毫秒),可能如下所示:
MoveMouseRelative(0,1)
Sleep(18)
所以,鼠标以一种速度移动一段时间,然后切换到另一种速度。
以下是要修复的代码:
EnablePrimaryMouseButtonEvents(true);
function OnEvent(event, arg)
if IsMouseButtonPressed(3)then
repeat
if IsMouseButtonPressed(1) then
repeat
MoveMouseRelative(0,3)
Sleep(25)
until not IsMouseButtonPressed(1)
end
until not IsMouseButtonPressed(3)
end
end
我将非常感谢任何支持影响函数执行时间的唯一方法是关闭cpu时钟(您不能这样做)或插入空闲时间 这就是您已经在使用
sleep
进行的操作
请注意,计时通常不是很准确。所以这里不要期望微秒级的分辨率。MoveMouseRelative参数总是整数(越大越快)
Sleep
参数建议为15的倍数(越小越快)
您可以将
repeat
循环替换为for i=1,10 do
循环,以在可预测的时间间隔后退出循环。
EnablePrimaryMouseButtonEvents(true)
function OnEvent(event, arg)
Sleep(10)
if IsMouseButtonPressed(3) and IsMouseButtonPressed(1) then
local t0 = GetRunningTime()
repeat
MoveMouseRelative(0,3) -- move fast
Sleep(15)
until GetRunningTime() > t0 + 500 -- exit this loop after 500 ms
or not (IsMouseButtonPressed(3) and IsMouseButtonPressed(1))
repeat
MoveMouseRelative(0,1) -- move slow
Sleep(30)
until not (IsMouseButtonPressed(3) and IsMouseButtonPressed(1))
end
end