Sign in to follow this  
Followers 0
saneman

Mouseclick -> r

3 posts in this topic

#1 ·  Posted (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 by saneman

Share this post


Link to post
Share on other sites



#2 ·  Posted (edited)

Try it like this

While 1
 If MouseClick("Left") Send("{ASC 114}")
 Sleep(100)
WEnd
edit: nevermind. I misread your post, and this doesn't do what you want. Edited by somdcomputerguy

- Bruce /*somdcomputerguy */  If you change the way you look at things, the things you look at change.

Share this post


Link to post
Share on other sites

saneman,

This should do what you want: :)

#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
EndFunc
But 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._______My UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0