结合击键和鼠标点击的罗技脚本

Logitech scripting combining keystroke and mouse click

我正在尝试制作一个脚本,当我同时按住左控制键和鼠标左键时,它会重复单击鼠标左键

这是我目前拥有的:

function OnEvent(event, arg, family)
  OutputLogMessage("clicked event = %s, arg = %s\n", event, arg);
 if event == "MOUSE_BUTTON_PRESSED" and arg == 1 and Ctrl_Down == 1 then
      repeat
      PressMouseButton(1) //repeat while the left mouse button down
      until not PressMouseButton(1)
     else ReleaseMouseButton(3) //stop the repating on left mouse button up
  end

end  

请注意,这是我第一次查看此类编码,非常感谢任何帮助

api.

可能无法满足您的具体需求

当您调用 PressMouseButton(1) 时,这会更改鼠标左键的状态。当您调用 ReleaseMouseButton(1) 时,即使您仍在按下按钮,情况也是如此,脚本会将其视为已发布。这意味着您不能使用 IsMouseButtonPressed(1) 来检测按钮是否仍被按下。

要创建 "click",您需要使用 PressAndReleaseMouseButton(1),这样您就无法再检测到 何时停止按下鼠标按钮。作为替代方案,您可以使用 IsModifierPressed("ctrl").

查看 ctrl 键并查看它是否仍被按下

在检测到按住 ctrl 的左键单击后,应重复以下操作,并且仅在松开 ctrl 后才结束:

function OnEvent(event, arg, family)
    OutputLogMessage("clicked event = %s, arg = %s\n", event, arg);
    if event == "MOUSE_BUTTON_PRESSED" and arg == 1 and Ctrl_Down == 1 then
        repeat
            PressAndReleaseMouseButton(1) --repeat while the ctrl is still pressed
        until not IsModifierPressed("ctrl")
    end
end

此信息基于罗技G系列LuaAPIV3.02.

首先,您必须定义EnablePrimaryMouseButtonEvents()以启用鼠标按钮1的事件报告

为了避免无限循环,你必须输入 sleep();

Press left control key then left mouse button it will repeat the click until you release the left mouse button then release left control key the script should be stopped

你的最终代码应该是这样的:

EnablePrimaryMouseButtonEvents(true);

function OnEvent(event, arg)
    if IsModifierPressed("lctrl") then
        repeat  
            if IsMouseButtonPressed(1) then
                repeat
                    PressMouseButton(1)
                    Sleep(15)
                    ReleaseMouseButton(1)
                until not IsMouseButtonPressed(1)
            end             
        until not IsModifierPressed("lctrl")
    end         
end