LUA中如何设置MoveMouseRelative函数的执行时间?

How to set the execution time of the MoveMouseRelative function in LUA?

我是编程新手,需要请教一个问题。 因此,加载到罗技鼠标中的这段代码以给定的速度将其拉下:

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的倍数(越小越快)

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