【发布时间】:2021-09-15 19:44:23
【问题描述】:
我想使用罗技 LUA 脚本 API 中提供的 SetMKeyState(...) 和 GetMKeyState(...) 函数来编写一些宏。
我使用的是 Windows 10 和最新版本的罗技 GHUB(由于各种原因我无法使用 LGS)。在我的键盘 Logitech G815 上,似乎从 LUA 宏对 SetMKeyState(...) 的任何调用都不会执行任何操作。虽然 GetMKeyState(...) 似乎正确地返回了当前的 MKey 状态。我已经阅读了“G-series Lua API V8.45”文档中与这两个函数相关的文档,看起来我正确使用了它们。
例如,以下LUA脚本应该使用G1键在M1/M2/M3之间切换MKey状态,但实际上并没有做任何事情(虽然代码被执行,因为调试日志行出现):
function OnEvent(event, arg)
if (event == "G_PRESSED" and arg == 1) then
currentState = GetMKeyState("kb")
OutputLogMessage("Current MKey state: %d\n", currentState)
newState = currentState + 1
if newState == 4 then
newState = 1
end
OutputLogMessage("Setting new MKey state: %d\n", newState )
SetMKeyState(newState , "kb");
end
end
我在这里做错了吗?
如果预计罗技 G815 不支持 SetMKeyState(...) 函数,那么哪种键盘型号可以正确支持 SetMKeyState(...) 函数来更改 MKey 状态?
【问题讨论】:
-
script should switch the MKey state, but actually does not do anything- 你的意思是 M1/2/3 灯没有切换还是GetMKeyState()返回了错误的结果? -
谢谢 Egor,我真的很希望能在这个节目上见到你。如果我处于 M1 状态并使用例如 SetMKeyState(2, "kb"),那么 LED 不会改变,我不会在以下处理程序事件中收到 M_PRESSED 事件,并且 GetMKeyState 函数总是返回相同的值 1。如果我手动按下 M2 按钮,LED 发生变化,GetMKeyState 返回新值 2,但我仍然没有在以下 OnEvent(...) 处理程序中收到 M_PRESSED 事件。有什么线索吗?
-
看起来像 GHUB 中的一个错误。
-
谢谢,这对我来说已经足够了
标签: lua logitech logitech-gaming-software