saneman Posted June 1, 2013 Share Posted June 1, 2013 (edited) I made a script so that whenever I click the left mouse button, it would press "r" like 1/4 second later. When in a loop, it just presses "r" without me clicking the left mouse button... and I want it to stop the loop when I press the right mouse button. Can anyone help? I know this should be very simple... but I'm new and couldn't find a fix. Heres my code already: Do if MouseClick("Left")=True Then sleep(250) Send("{ASC 114}") EndIf Until MouseClick("Right") Edited June 2, 2013 by saneman Link to comment Share on other sites More sharing options...
somdcomputerguy Posted June 2, 2013 Share Posted June 2, 2013 (edited) Try it like thisWhile 1 If MouseClick("Left") Send("{ASC 114}") Sleep(100) WEndedit: nevermind. I misread your post, and this doesn't do what you want. Edited June 2, 2013 by somdcomputerguy - Bruce /*somdcomputerguy */ If you change the way you look at things, the things you look at change. Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted June 2, 2013 Moderators Share Posted June 2, 2013 saneman,This should do what you want: expandcollapse popup#include <Misc.au3> ; Create a way to exit HotKeySet("{ESC}", "On_Exit") ; Open DLL for IsPressed $hDLL = DllOpen("user32.dll") ; A flag to show whether to run the loop $fRun = False ; Start an infinite loop - this is why we need a HotKey to escape While 1 ; Look for the left button being pressed If _IsPressed("01", $hDLL) Then ; Set the flag $fRun = True ; And just for this example - tell us what is happening ConsoleWrite("+ Starting loop" & @CRLF) ; And wait for the button to be released While _IsPressed("01", $hDLL) Sleep(10) WEnd EndIf ; Look for the right button being pressed If _IsPressed("02", $hDLL) Then ; Clear the flag $fRun = False ; And just for this example - tell us what is happening ConsoleWrite("! Stopping loop" & @CRLF) ; And wait for the button to be released While _IsPressed("02", $hDLL) Sleep(10) WEnd EndIf ; If th flag is set If $fRun Then ; Wait 1/4 sec Sleep(250) ; Do what you want to do ConsoleWrite("Sending 'r' at " & @MSEC & @CRLF) Else ; If the flag is not set then just give the CPU a breather Sleep(10) EndIf WEnd Func On_Exit() ; Close the DLL - always inportant to tidy up DllClose($hDLL) Exit EndFuncBut please make sure you read the Forum rules (there is also a link at bottom right of each page) before you post again. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now