Lua 编写让电脑休眠的脚本

Lua script pc to sleep

所以我得到了一个带有 hG 键的新键盘。 (热键)而且我不熟悉 lua... 那么有人可以给我一个非常简单的命令来让我的电脑进入睡眠状态吗?请问?

if gkey == 7 and mkey == 1 then
    if event == "G_PRESSED" then

    end
end

gkeys 所以 gkey 是按下的键,而 mkey 是它使用的集合。我最多可以有 54 个不同的 scripts/macro。 我想知道我必须在最后一个 'then' 之后放什么,这样我的电脑才能进入睡眠状态。

提前谢谢 编辑 1: 得到这个:

    if gkey == 1 and mkey == 3 then
    if event == "G_PRESSED" then
        execute("rundll32.exe powrprof.dll,SetSuspendState 0,1,0");
    end
end

错误是:[string "LuaVM"]:40: 尝试调用全局 'execute'(零值)

和 os.execute 我得到这个错误:

[string "LuaVM"]:40: 尝试索引全局 'os'(零值)

最终答案:gseries 键盘不可用。使用快捷方式

编辑以响应 OP 编辑​​:您有权访问的 Lua 库已删除 os 库,因此您可能无法让计算机直接进入睡眠状态。

可能有一种间接的方法可以通过编写一些东西来侦听调试消息,您可以使用 OutputDebugMessage 生成这些消息。有一个 Team Speak 插件可以做到这一点。但这可能超出了您现在的编程能力,也远远超出了 Whosebug post 的解释范围。


您可以使用 os.execute 到 运行 来自 Lua 的可执行文件。

如果你 google "Windows sleep command line" 你会得到 another Whosebug post which shows two ways of doing it. One requires that you turn hibernation off, the other requires that you download an additional utility (PsShutdown).

假设您已经下载了 PsShutdown 并将其放在您的 PATH 中的某个位置,那么您可以使用以下命令让计算机休眠:

os.execute('psshutdown -d -t 0')

鉴于您的代码片段中对 G-keysG_PRESSED 的引用,我假设您使用的是罗技 G 系列键盘之一。可以对这些键盘进行编程,以便某些键 运行 Lua 使用自定义 Lua 5.1 解释器执行脚本。该文档包含在罗技的游戏软件程序中。

根据文档,仅支持部分标准库函数:stringmathtable 可用。但是,ioosdebug 不可用。

所以我怀疑你能否让你的电脑进入睡眠状态。