当我用鼠标左键同时按住左键控制键时,我正在尝试制作一个反复点击鼠标左键的脚本
这是我到目前为止:
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
请注意,这是我第一次查看此类编码,因为非常感谢任何帮助
首先,您必须定义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
api可能无法满足您的需求。
当你调用PressMouseButton(1)
时,这会改变鼠标左键的状态。当你打电话给ReleaseMouseButton(1)
时,即使你仍按下按钮也是如此,脚本会将其视为已发布。这意味着您无法使用IsMouseButtonPressed(1)
来检测按钮是否仍然按下。
要创建“单击”,您需要使用PressAndReleaseMouseButton(1)
,当您停止按下鼠标按钮时,您将无法再检测到它。作为替代方案,您可以使用IsModifierPressed("ctrl")
查看ctrl键并查看它是否仍然按下。
在检测到左击ctrl down之后应重复以下操作,并且只有在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。