Logitech 脚本帮助 - 鼠标左键切换

时间:2021-08-02 00:05:14

标签: lua logitech logitech-gaming-software

我正在尝试修复我的脚本,因此当我按下鼠标按钮 4 时,它会按住鼠标左键进行切换,如果我在切换过程中按下鼠标左键,它将单击然后继续按住鼠标左键,除非我用鼠标按钮 4 将其关闭。

toggle_button = 4 -- What mouse button should control the toggle
button_to_toggle = 1 -- What mouse button to toggle
toggle = false
EnablePrimaryMouseButtonEvents(true)
function OnEvent(event, arg)
    if (event == "MOUSE_BUTTON_PRESSED" and arg == toggle_button) then
        toggle = not toggle
            OutputLogMessage("Mouse %d toggled %s \n", button_to_toggle, tostring(toggle))
    elseif toggle and (event == "MOUSE_BUTTON_PRESSED" and arg == 1) then
            OutputLogMessage("Mouse 1 pressed \n")
        PressAndReleaseMouseButton(1)
        elseif toggle then
            PressMouseButton(button_to_toggle)
        else
            ReleaseMouseButton(button_to_toggle)
        end
end

出于某种原因,我的脚本有点奏效。切换期间的鼠标左键有时仅起作用,但大多数情况下不会重新启用鼠标 1 切换。如何清理和修复我的脚本?

1 个答案:

答案 0 :(得分:0)

第 1 步。
您即将修改鼠标左键的行为。
这是一个潜在的危险操作:如果没有 LMB,您几乎无法在计算机上执行任何操作。
所以你必须创建一个“备用 LMB”。
例如,如果您不使用鼠标按钮 8,则可以将其设置为 LMB 上的克隆。
转到 LGS 中的大鼠标图片并将命令“左键单击”分配给您的物理 MB#8。
现在,如果出现问题并且您的 LMB 停止工作,您可以按 MB#8 而不是 LMB。


第 2 步。
转到LGS中的大老鼠图片。
从物理 MB#1 取消分配标准命令“左键单击”(从下拉菜单中选择“取消分配”)。
您将看到有关潜在危险操作的警告。
允许此操作,因为如果出现问题,您有“备用 LMB”。


第 3 步。
您的 MB#1 现在不工作(直到您保存脚本),因此在 LGS GUI 中使用 MB#8 而不是 MB#1。
设置脚本:

local pressed

function OnEvent(event, arg)
   if event == "PROFILE_ACTIVATED" then
      EnablePrimaryMouseButtonEvents(true)
   elseif event == "PROFILE_DEACTIVATED" then
      ReleaseMouseButton(1)
   elseif event == "MOUSE_BUTTON_PRESSED" and arg == 4 
   or (event == "MOUSE_BUTTON_PRESSED" or event == "MOUSE_BUTTON_RELEASED") and arg == 1 then
      pressed = not pressed
      ;(pressed and PressMouseButton or ReleaseMouseButton)(1)
   end
end