鼠标宏脚本异常:无法重复循环且松键后不停止
问题描述
需求:按住鼠标左键时,鼠标按指定路径循环移动,松开左键立即停止。
当前问题:
- 松开左键后,鼠标仍会执行完当前移动循环才停止
- 按住左键时,只会执行一次移动路径,无法重复循环
演示效果:
当前代码:
EnablePrimaryMouseButtonEvents(true); function OnEvent(event, arg) if IsKeyLockOn("numlock" )then if IsMouseButtonPressed(1) then Sleep(50) MoveMouseRelative(0, 1) Sleep(100) MoveMouseRelative(0, 16) Sleep(100) MoveMouseRelative(0, 26) Sleep(100) MoveMouseRelative(-2, 25) Sleep(100) MoveMouseRelative(10, 28) Sleep(100) MoveMouseRelative(8, 25) Sleep(100) MoveMouseRelative(10, 15) Sleep(100) MoveMouseRelative(-14, 15) Sleep(100) MoveMouseRelative(-34, -1) Sleep(100) MoveMouseRelative(-18, 0) Sleep(100) MoveMouseRelative(10, 10) Sleep(100) MoveMouseRelative(-13, 5) Sleep(100) MoveMouseRelative(-20, -5) Sleep(100) end coroutine.resume(cor) repeat Sleep(100) coroutine.resume(cor) until not IsMouseButtonPressed(1) end end
修复后的代码
EnablePrimaryMouseButtonEvents(true); function OnEvent(event, arg) -- 仅在NumLock开启时生效 if not IsKeyLockOn("numlock") then return end -- 监听鼠标左键按下事件 if event == "MOUSE_BUTTON_PRESSED" and arg == 1 then -- 循环执行移动路径,直到左键松开 while IsMouseButtonPressed(1) do -- 执行指定移动路径 Sleep(50) MoveMouseRelative(0, 1) Sleep(100) MoveMouseRelative(0, 16) Sleep(100) MoveMouseRelative(0, 26) Sleep(100) MoveMouseRelative(-2, 25) Sleep(100) MoveMouseRelative(10, 28) Sleep(100) MoveMouseRelative(8, 25) Sleep(100) MoveMouseRelative(10, 15) Sleep(100) MoveMouseRelative(-14, 15) Sleep(100) MoveMouseRelative(-34, -1) Sleep(100) MoveMouseRelative(-18, 0) Sleep(100) MoveMouseRelative(10, 10) Sleep(100) MoveMouseRelative(-13, 5) Sleep(100) MoveMouseRelative(-20, -5) Sleep(100) -- 如需切换方向循环,在此添加反向移动路径 -- 示例反向步骤(可按需调整): -- Sleep(100) -- MoveMouseRelative(20, 5) -- ... 其他反向移动代码 end end end
修复说明
- 解决松开左键不停止问题:
原代码一次性执行完所有移动步骤,未中途检查按键状态。修改后将移动逻辑放入while IsMouseButtonPressed(1)循环,每轮循环都会验证左键是否仍被按住,松开后立即终止。 - 解决按住左键不循环问题:
原代码仅触发一次移动路径,通过while循环实现按住左键时重复执行路径,直到按键松开。 - 简化冗余逻辑:
移除了未正确初始化的协程代码,直接通过事件监听+循环实现需求,逻辑更清晰。 - 方向切换扩展:
若需要切换方向循环,可在每轮移动路径结束后添加反向移动步骤,同样包裹在while循环内即可。
内容的提问来源于stack exchange,提问作者user18953534
相关产品推荐
相关产品推荐

