使用 PressMouseButton(1) 和 ReleaseMouseButton(1) 之间插入 then break end 导致鼠标按键保持按下状态

在执行宏时,同时按住鼠标左键和右键,有时鼠标按键保持按下状态。如何修复此问题,而不必使用 PressAndReleaseMouseButton(1) 呢?这是否可能?

    EnablePrimaryMouseButtonEvents(true);
    function OnEvent(event, arg)
     if IsMouseButtonPressed(1) then
      repeat
       PressMouseButton(1)
       Sleep(33) if not IsMouseButtonPressed(3) then break end
       ReleaseMouseButton(1)
       PressMouseButton(1)
       Sleep(33) if not IsMouseButtonPressed(3) then break end
       ReleaseMouseButton(1)
       PressMouseButton(1)
       Sleep(33) if not IsMouseButtonPressed(3) then break end
       ReleaseMouseButton(1)
      until not IsMouseButtonPressed(1)
     end
    end

注:不需要循环,应执行到结束并停止,或在按钮释放时较早地停止。

点赞
用户1847592
用户1847592
function OnEvent(event, arg)
   if event == "PROFILE_ACTIVATED" then
      EnablePrimaryMouseButtonEvents(true)
   elseif event == "MOUSE_BUTTON_PRESSED" and arg == 1 and IsMouseButtonPressed(3) then
      for i = 1, 3 do  -- 点击鼠标左键 3 次并停止
         PressMouseButton(1)
         Sleep(33)
         ReleaseMouseButton(1)
         Sleep(33)
         if not IsMouseButtonPressed(3) then break end
      end
   end
end
2021-01-09 18:04:14