罗技 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()
。
因为叶戈尔总是帮忙,所以这是为了向他展示问题,但如果你知道如何解决,也请帮忙!
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()
。