罗技脚本结合了击键和鼠标单击

时间:2019-02-13 11:34:29

标签: lua logitech logitech-gaming-software

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

这是我到目前为止所拥有的:

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  

请注意,这是我第一次查看此类编码,因为对您的帮助非常感谢

2 个答案:

答案 0 :(得分:1)

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

为避免任何无限循环,您必须放置sleep();

  

按左控制键,然后按鼠标左键将重复单击   直到释放鼠标左键,然后释放左控制键   该脚本应停止

您的最终代码应类似于:

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

答案 1 :(得分:0)

使用api可能无法找到您想要的东西。

调用PressMouseButton(1)时,这会更改鼠标左键的状态。当您调用ReleaseMouseButton(1)时,即使您仍按该按钮也是如此,脚本将其视为已释放。这意味着您无法使用IsMouseButtonPressed(1)来检测按钮是否仍处于按下状态。

要创建“点击”,您将需要使用PressAndReleaseMouseButton(1),并且您无法再检测到 YOU 何时停止按下鼠标按钮。或者,您可以使用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

此信息基于 Logitech G系列Lua API V3.02