罗技 Lua 睡眠行为

Logitech Lua Sleep Behavior

因为叶戈尔总是帮忙,所以这是为了向他展示问题,但如果你知道如何解决,也请帮忙!

https://youtu.be/J2vRfnUplio <<< 这就是脚本的工作方式。 (查看描述了解更多信息)

https://youtu.be/HH_MmfXUdl8 <<< 这是现在的情况,在 windows 较新的版本中。

^^ 这是最后一个问题,你帮了我

GHUB 在两者上的版本相同,所以不是 GHUB 的问题。

Sleep(1) 不会表现得像它应该的那样,我最好的猜测是 windows 改变了一些东西,但问题是什么。

有人帮忙吗?

在脚本开头插入以下代码块,在 OnEvent() 函数

之前
do
   local function busyloop(final_ctr)
      final_ctr = final_ctr - final_ctr%1
      local ctr, prev_ms, ms0, ctr0 = 0
      while ctr ~= final_ctr do
         local ms = GetRunningTime()
         if prev_ms and ms ~= prev_ms then
            if not ms0 then
               ms0, ctr0 = ms, ctr
            elseif final_ctr < 0 and ms - ms0 > 500 then
               return (ctr - ctr0) / (ms - ms0)
            end
         end
         prev_ms = ms
         ctr = ctr + 1
      end
   end
   local coefficient = busyloop(-1)
   function FastSleep(ms)
      return busyloop(ms * coefficient)
   end
end

之后你可以在你的脚本中使用函数 FastSleep(delay) 小的时间间隔。

示例:

FastSleep(0.5)  -- wait for 0.5 ms

对于较大的时间间隔(例如,30 毫秒或更长),首选标准 Sleep()