如何使这个 Logitech 鼠标 LUA 脚本更好地工作?
How to make this Logitech Mouse LUA script work better?
我想在 LUA 中为 Logitech 鼠标制作一个简单的宏。
我是完全的新手,我只是从几个来源粘贴了几行。
EnablePrimaryMouseButtonEvents(true);
function OnEvent(event, arg)
if IsKeyLockOn("numlock") then
if IsMouseButtonPressed(3) then
repeat
if IsMouseButtonPressed(1) then
repeat
PressKey("P")
MoveMouseRelative(0, 13)
Sleep(10)
MoveMouseRelative(0, 13)
Sleep(10)
MoveMouseRelative(0, 13)
Sleep(10)
MoveMouseRelative(0, 13)
Sleep(10)
MoveMouseRelative(0, 13)
Sleep(10)
ReleaseKey("P")
Sleep(200)
until not IsMouseButtonPressed(1)
end
until not IsMouseButtonPressed(3)
elseif not IsMouseButtonPressed(3) then
repeat
if IsMouseButtonPressed(1) then
repeat
PressKey("P")
MoveMouseRelative(0, 15)
Sleep(30)
MoveMouseRelative(0, 12)
Sleep(10)
MoveMouseRelative(0, 12)
Sleep(10)
MoveMouseRelative(0, 12)
Sleep(10)
MoveMouseRelative(0, 12)
Sleep(130)
ReleaseKey("P")
Sleep(200)
until not IsMouseButtonPressed(1)
end
until IsMouseButtonPressed(3)
end
end
end
首先,它看起来一团糟,但有点用处,抱歉,我对它完全是个新手。
现在我遇到的问题是;
我使用 numlock 来启用或禁用整个东西,因为我不知道如何用单个 MouseButtonKey 打开和关闭它,它要么永远播放,要么我破坏了整个东西。
没关系,如果不是因为一个奇怪的错误,在我关闭 numlock 之后我必须按 MouseButton 2 以将其关闭。
我以为我想要实现的很简单,
我想要 4 个功能;
Function 1 MoveMouseRelative repeated every ()ms
Function 2 MoveMouseRelative repeated every ()ms
Function 3 PressKey("P") repeated every ()ms
Function 4 PressKey("P") repeated every ()ms
然后结合起来
如果我按下 MouseButtonPressed(1) 它会执行功能 1+3,因此它会同时单击 P 并向下拖动鼠标,但具有不同的 sleep() 间隔,这些间隔将在单独的函数中说明
否则,如果我按下并按下 MouseButtonPressed(3)(右键单击)+ MouseButtonPressed(1),它将改为执行 2+4 个功能,并且会在按住时重复并在我松开按钮时停止重复。
这可能吗?我陷入了这段代码,无法停止思考上周如何修复,但没有受过教育,只是猜测事情会如何发展,我遇到了无法突破的墙。
非常感谢您的帮助。
EnablePrimaryMouseButtonEvents(true)
local sequence_LMB = {{x=0,y=15, t=30}, {x=0,y=12, t=10}, {x=0,y=12, t=10}, {x=0,y=12, t=10}, {x=0,y=12, t=130}}
local sequence_LMB_RMB = {{x=0,y=13, t=10}, {x=0,y=13, t=10}, {x=0,y=13, t=10}, {x=0,y=13, t=10}, {x=0,y=13, t=10}}
function OnEvent(event, arg)
if event == "MOUSE_BUTTON_PRESSED" and arg == 1 and IsKeyLockOn("numlock") then
repeat
PressKey("P")
local sequence = IsMouseButtonPressed(3) and sequence_LMB_RMB or sequence_LMB
for i, step in ipairs(sequence) do
MoveMouseRelative(step.x, step.y)
Sleep(step.t)
end
ReleaseKey("P")
Sleep(200)
until not IsMouseButtonPressed(1)
end
end
我想在 LUA 中为 Logitech 鼠标制作一个简单的宏。 我是完全的新手,我只是从几个来源粘贴了几行。
EnablePrimaryMouseButtonEvents(true);
function OnEvent(event, arg)
if IsKeyLockOn("numlock") then
if IsMouseButtonPressed(3) then
repeat
if IsMouseButtonPressed(1) then
repeat
PressKey("P")
MoveMouseRelative(0, 13)
Sleep(10)
MoveMouseRelative(0, 13)
Sleep(10)
MoveMouseRelative(0, 13)
Sleep(10)
MoveMouseRelative(0, 13)
Sleep(10)
MoveMouseRelative(0, 13)
Sleep(10)
ReleaseKey("P")
Sleep(200)
until not IsMouseButtonPressed(1)
end
until not IsMouseButtonPressed(3)
elseif not IsMouseButtonPressed(3) then
repeat
if IsMouseButtonPressed(1) then
repeat
PressKey("P")
MoveMouseRelative(0, 15)
Sleep(30)
MoveMouseRelative(0, 12)
Sleep(10)
MoveMouseRelative(0, 12)
Sleep(10)
MoveMouseRelative(0, 12)
Sleep(10)
MoveMouseRelative(0, 12)
Sleep(130)
ReleaseKey("P")
Sleep(200)
until not IsMouseButtonPressed(1)
end
until IsMouseButtonPressed(3)
end
end
end
首先,它看起来一团糟,但有点用处,抱歉,我对它完全是个新手。 现在我遇到的问题是;
我使用 numlock 来启用或禁用整个东西,因为我不知道如何用单个 MouseButtonKey 打开和关闭它,它要么永远播放,要么我破坏了整个东西。 没关系,如果不是因为一个奇怪的错误,在我关闭 numlock 之后我必须按 MouseButton 2 以将其关闭。
我以为我想要实现的很简单, 我想要 4 个功能;
Function 1 MoveMouseRelative repeated every ()ms
Function 2 MoveMouseRelative repeated every ()ms
Function 3 PressKey("P") repeated every ()ms
Function 4 PressKey("P") repeated every ()ms
然后结合起来 如果我按下 MouseButtonPressed(1) 它会执行功能 1+3,因此它会同时单击 P 并向下拖动鼠标,但具有不同的 sleep() 间隔,这些间隔将在单独的函数中说明 否则,如果我按下并按下 MouseButtonPressed(3)(右键单击)+ MouseButtonPressed(1),它将改为执行 2+4 个功能,并且会在按住时重复并在我松开按钮时停止重复。
这可能吗?我陷入了这段代码,无法停止思考上周如何修复,但没有受过教育,只是猜测事情会如何发展,我遇到了无法突破的墙。
非常感谢您的帮助。
EnablePrimaryMouseButtonEvents(true)
local sequence_LMB = {{x=0,y=15, t=30}, {x=0,y=12, t=10}, {x=0,y=12, t=10}, {x=0,y=12, t=10}, {x=0,y=12, t=130}}
local sequence_LMB_RMB = {{x=0,y=13, t=10}, {x=0,y=13, t=10}, {x=0,y=13, t=10}, {x=0,y=13, t=10}, {x=0,y=13, t=10}}
function OnEvent(event, arg)
if event == "MOUSE_BUTTON_PRESSED" and arg == 1 and IsKeyLockOn("numlock") then
repeat
PressKey("P")
local sequence = IsMouseButtonPressed(3) and sequence_LMB_RMB or sequence_LMB
for i, step in ipairs(sequence) do
MoveMouseRelative(step.x, step.y)
Sleep(step.t)
end
ReleaseKey("P")
Sleep(200)
until not IsMouseButtonPressed(1)
end
end