我正在尝试制作一个脚本,当我同时按住鼠标左键并按住鼠标左键时,会反复单击鼠标左键
这是我到目前为止所拥有的:
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
请注意,这是我第一次查看此类编码,因为对您的帮助非常感谢
答案 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 。