【问题标题】:LOGITECH GHUB LUA: SetMKeyStateLOGITECH GHUB LUA:SetMKeyState
【发布时间】: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


【解决方案1】:

这实际上不是一个答案,只是一个建议,而是IDK将代码粘贴到cmets中的方式,所以希望你能原谅我:) API doc中有参考代码:

-- Set the current M Key state to M1 when G1 is pressed
function OnEvent(event, arg)
    if (event == "G_PRESSED" and arg == 1) then
        SetMkeyState(1);
    end
end

如果我是你,我会从检查它是否正常工作开始,没有任何改变。

然后,一步一步:

  • 添加调试消息;
  • 复查;
  • 尝试将其设置为 2 而不是 1;
  • 尝试将其设置为 3;
  • 尝试在操作之前和之后读取和打印当前状态,考虑到 API 文档中的以下注释:“之后立即调用 GetMKeyState,可能会返回之前的状态。使用 OnEvent 处理程序来确定操作何时发生完成。”

【讨论】:

  • 我已经这样做了,在我看来,从调试输出来看,代码按预期进行。只是 SetMKeyState(...) 函数似乎不会改变 MKey 状态。 M 键上有 LED,所以我可以看到它是哪个状态,当 MKey 状态改变时,我对 G 按钮有不同的配置,当我调用 SetMKeyState(...) 时,LED 和按钮都没有改变.因此,我寻求帮助以了解这是代码中的问题,还是我的键盘坏了,还是已知行为。
猜你喜欢
  • 2020-03-12
  • 2021-03-16
  • 2021-11-02
  • 2021-04-04
  • 2021-06-19
  • 2021-12-13
  • 2012-02-20
  • 1970-01-01
  • 2021-09-12
相关资源
最近更新 更多