Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
435 views
in Technique[技术] by (71.8m points)

lua - Button remain pressed with "then break end" between PressMouseButton(1) and ReleaseMouseButton(1)

When executing a macro, while holding LMB + RMB, sometimes the button remains pressed. How to fix this without resorting to PressAndReleaseMouseButton(1)? Is it even possible?

    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

p.s. it doesn't need to be looped, it should be executed to the end and stop, or stop earlier when the button is released.

question from:https://stackoverflow.com/questions/65645669/button-remain-pressed-with-then-break-end-between-pressmousebutton1-and-rele

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
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  -- press LMB 3 times and stop
         PressMouseButton(1)
         Sleep(33)
         ReleaseMouseButton(1)
         Sleep(33)
         if not IsMouseButtonPressed(3) then break end
      end
   end
end

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...