罗技鼠标可靠睡眠

介绍

我正在为我的罗技鼠标编写一个lua脚本。罗技lua api有这个文档。

我的脚本每x毫秒移动一次鼠标以绘制图案。我的问题是,该lua api的Sleep (x)函数非常不准确。我已经阅读过它花费时间 (几毫秒)来获取线程,因此该时间增加了代码本身的执行时间。但是它使它无法用于测量毫秒。

问题

您知道有什么解决方法吗?有比Sleep(x)函数更可靠的测量毫秒的方式吗?

另外我想指出,在windows 10版本1909及以下,它更准确。自从Windows 10 2004版本(去年8月左右)以来,他们搞乱了它,因此它不准确。所以我需要找到一个解决方法。

我的代码

下面是我代码的片段:

PressMouseButton(1)
--1
MoveMouseRelative(-26, 36)
Sleep(127)
--2
MoveMouseRelative(2, 36)
Sleep(127)
--3
MoveMouseRelative(-36, 32)
Sleep(127)
--4
MoveMouseRelative(-33, 30)
Sleep(127)
--5
MoveMouseRelative(-11, 38)
Sleep(127)
ReleaseMouseButton(1)

虽然这个代码段不能独立工作,但你可以从这里看到我想要使用的函数。 谢谢你的帮助!

点赞
用户2858170
用户2858170

Sleep 并不是用来测量毫秒的。它会暂停你的脚本一段时间。

根据我所了解到的,从 Logitech 脚本中无法加载任何库文件。

因此,你只能使用 Sleep 或者运行一个循环来延迟。

2021-02-11 14:03:15
用户17989086
用户17989086

发送给你一个罗技高精度延迟,精度高达1毫秒,为什么要高精度呢?因为在win10 1909系统版本之后,罗技脚本1ms=15.6ms,因此需要高精度。

function Sleep3(time)
    local a = GetRunningTime()
    while GetRunningTime()-a < time do
    end
end
2022-01-21 02:10:09