Jump to content

Run Autoit Script More Than Once?


Recommended Posts

Hello,

I've been working with AutoIt for a little over 2 weeks now, and so far I've only created simple point and click automations.

It's working out great for me, but, I'd like to know if I can run multiple instances of AutoIt without one taking mouse control over the other. I want to be able to have a bunch of automations running, each working on its own, and I would like to run them on miminized windows so that I still have control over the computer.

Is this possible with AutoIt? Or must I run the automations on multiple computers?

Thanks!

EDIT: Also, if I'm running something minimized, how can I get the pixel colors at a certain coordinate inside the window? I don't think PixelGetColor will work, because that just grabs straight off the screen.

Here's my code, I want to be able to have this running multiple times, in multiple minimized windows.

CODE
If PixelGetColor ( 631 , 485 ) = 0xEDC21F Then

MouseClick ( "left" , 358 , 495 , 1 )

Sleep ( 300 )

Send ( "8768400995" )

MouseClick ( "left" , 631 , 485 , 1 )

Sleep ( 1200 )

ElseIf PixelGetColor ( 631 , 485 ) <> 0xEDC21F Then

Do

PixelGetColor ( 631 , 485 )

Until PixelGetColor ( 631 , 485 ) = 0xEDC21F

If PixelGetColor ( 631 , 485 ) = 0xEDC21F Then

MouseClick ( "left" , 358 , 495 , 1 )

Sleep ( 300 )

Send ( "8768400995" )

MouseClick ( "left" , 631 , 485 , 1 )

Sleep ( 1200 )

EndIf

EndIf

If PixelGetColor ( 578 , 382 ) = 0xEBE9ED Then

MouseClick ( "left" , 523 , 404 , 1 )

Sleep ( 300 )

MouseClick ( "left" , 358 , 495 , 1 )

Send ( "^a" )

Sleep ( 300 )

Send ( "8768400995" )

MouseClick ( "left" , 631 , 485 , 1 )

EndIf

;checks 2nd page

If PixelGetColor ( 849 , 563 ) = 0xE7A80C Then

MouseClick ( "left" , 849 , 563 , 1 )

ElseIf PixelGetColor ( 849 , 563 ) <> 0xE7A80C Then

Do

PixelGetColor ( 849 , 563 )

Until PixelGetColor ( 849 , 563 ) = 0xE7A80C

If PixelGetColor ( 849 , 563 ) = 0xE7A80C Then

MouseClick ( "left" , 849 , 563 , 1 )

EndIf

EndIf

;checks 3rd page

If PixelGetColor ( 568 , 624 ) = 0xE59C0A Then

Sleep ( 1000 )

MouseClick ( "left" , 344 , 100 , 1 )

MouseClick ( "left" , 134 , 130 , 1 )

MouseClick ( "left" , 67 , 412 , 1 )

MouseClick ( "left" , 181 , 413 , 1 )

Sleep ( 300 )

Send ( "^a" )

Sleep ( 300 )

Send ( "^x" )

MouseClick ( "left" , 356 , 129, 1 )

Sleep ( 300 )

MouseClick ( "left" , 373 , 450, 1 )

Sleep ( 300 )

Send ( "^v" )

MouseClick ( "left" , 568 , 624 , 1 )

EndIf

If PixelGetColor ( 568 , 624 ) <> 0xE59C0A Then

Do

PixelGetColor ( 568 , 624 )

Until PixelGetColor ( 568 , 624 ) = 0xE59C0A

If PixelGetColor ( 568 , 624 ) = 0xE59C0A Then

Sleep ( 1000 )

MouseClick ( "left" , 344 , 100 , 1 )

MouseClick ( "left" , 134 , 130 , 1 )

MouseClick ( "left" , 67 , 412 , 1 )

MouseClick ( "left" , 181 , 413 , 1 )

Sleep ( 300 )

Send ( "^a" )

Sleep ( 300 )

Send ( "^x" )

MouseClick ( "left" , 356 , 129, 1 )

Sleep ( 300 )

MouseClick ( "left" , 373 , 450, 1 )

Sleep ( 300 )

Send ( "^v" )

MouseClick ( "left" , 568 , 624 , 1 )

EndIf

EndIf

Sleep ( 1000 )

If PixelGetColor ( 413 , 399 ) = 0xEBE9ED Then

MouseClick ( "left" , 525 , 401 , 1 )

Sleep ( 300 )

MouseClick ( "left" , 373 , 450, 1 )

Sleep ( 300 )

Send ( "^v" )

MouseClick ( "left" , 568 , 624 , 1 )

EndIf

;clicks page

If PixelGetColor ( 350 , 421 ) = 0x6D523E Then

MouseClick ( "left" , 350 , 421 , 1 )

ElseIf PixelGetColor ( 350 , 421 ) <> 0x6D523E Then

Do

PixelGetColor ( 350 , 421 )

Until PixelGetColor ( 350 , 421 ) = 0x6D523E

If PixelGetColor ( 350 , 421 ) = 0x6D523E Then

MouseClick ( "left" , 350 , 421 , 1 )

EndIf

EndIf

;verifies page

If PixelGetColor ( 152 , 459 ) <> 0xFFFFFF Then

ElseIf PixelGetColor ( 152 , 459 ) = 0xFFFFFF Then

Do

PixelGetColor ( 152 , 459 )

Until PixelGetColor ( 152 , 459 ) <> 0xFFFFFF

Endif

If PixelGetColor ( 677 , 632 ) <> 0xEDC91D Or PixelGetColor ( 542 , 461 ) <> 0xEAD21C Then

Do

PixelGetColor ( 677 , 632 )

PixelGetColor ( 542 , 461 )

Until PixelGetColor ( 677 , 632 ) = 0xEDC91D Or PixelGetColor ( 542 , 461 ) = 0xEAD21C

EndIf

If PixelGetColor ( 677 , 632 ) = 0xEDC91D Then

Sleep ( 20000 )

MouseClick ( "left" , 676 , 642 , 1 )

SoundPlay ( "success.wav" , 1 )

Sleep ( 2147483647 )

EndIf

If PixelGetColor ( 542 , 461 ) = 0xEAD21C Then

MouseClick ( "left" , 403 , 161 , 1 )

Sleep ( 500 )

Send ( "^a" )

Sleep ( 500 )

Send ( "{ENTER}" )

EndIf

Until PixelGetColor ( 677 , 632 ) = 0xEDC91D

(It's pretty simple and not well done, but it works.)

Edited by Qaptian
Link to comment
Share on other sites

Hi Qaptian,

1st Welcome to the AutoIt Forums! :idea:

Some of the following tips may not apply to you, but it may make your life a bit easier here on the forum in the future.

CODE
  • Did you know that we have an awesome search feature?

    You can find many answers to your current questions, just by typing in the right search patterns.

  • A suggestion is to use the Advanced Search mode:

  • Type your specific search term in quotes.
  • Click the forum you want to search in (the one most likely to have your information would generally be the Example Script forum and or the General Help and Support Forum).
  • Click on "Search titles only" radio button.
  • Click perform search.
The above will help you narrow down your searches and prevent you from unneccesarily posting a new thread.

[*]Also, you should try to read the Sticky posts that are at the top of each of the AutoIt Forums you enter such as:

[*]Keep in mind, the help file will be your best friend, however you may find some of the tutorials written by some of our elite forum members helpful.

[*]Forum Etiquette:

  • Making a new thread:

    • Use the Search feature first to see if your question has already been answered.
    • Look in the help file as well before even thinking of posting (When what you want could be obtained by simply reading the help file, you don't generally get a good response from your AutoIt community).
    • Titles are very important here. 1 word titles or titles like "help me", "write something for me", "I'm a noob" etc... aren't tolerated.
    • Make sure you are posting in the correct forum:

      • General Help and Support:

        • This forum is for AutoIt related support questions only. If you have a question related to another language, or nothing at all to do with AutoIt then you need to post in the chat forum, or in that languages perspective forum.
      • Example Script:

        • This forum is for AutoIt scripts/executables only.
        • Source code is preferred but not necessary, you do have the right to just post the binary of your project if you wish.
        • Please don't post questions in this forum unless it's directly related to a thread already existing.
    • Use common sense when creating a new thread.

      Ask yourself if the title is descriptive enough to even interest someone (preferably those that know what they are talking about) to even look at your thread, let alone reply in it.

    • Think about how it would show in the search feature if someone were to look for something just like you are looking for (think of the keywords you used yourself and obviously didn't find anything (because we know you used the search feature :P ) and use those types of keywords in your title as well).
  • Thread content:

    • Be descriptive with your query. (Make sure we actually know what you want to do).
    • Show you've made an effort in coding what you want (provide the reproducer code (generally no more than 50 lines as people lose interest in debugging someones script for free)).
    • Don't talk in ebonics. A lot of the forum members are adults, and a lot of them know how to help you, but talk like a child, you'll be treated as such.
    • Don't ask for help making keyloggers, spam (even if it's to do as a prank), or anything that can be thought of as malicious. You'll more than likely have the thread locked by a moderator, and take a bashing from your fellow AutoIt community.
    • When posting code, use code boxes. This can be accomplished by using [code ]<content here>[/code ] (No spaces between the brackets []).

      Using code boxes will keep the indentation and make it easier to read for others to help you.

  • Bumping your threads:

    • Use common courtesy here.

      Keep in mind every time you bump your thread to the top of the forum, you knock the other threads down a notch.

      Everyone posting for help has just as much right for their threads to get read as you do.

      Because of that, do not bump your post more than once in a 24 hour period.

      A Bump is simply posting in your thread with nothing that pertains to your query with the sole purpose of moving it up.

      Deleting previous bumps, and posting new ones is not tolerated, and the moderators can find those deletions, so do yourself a favor and don't cross that line :( .

  • Rude or obnoxious content:

    This falls pretty much under the common sense thing. If you use it (common sense) before posting, you won't have issues.

    • Don't use foul language, remember, a lot of the community is at work when they read these threads.
    • Don't provoke or instigate an argument with someone.
  • Double Posting:

    • It's understood that sometimes there's a lag in the system, and sometimes people don't see their post go up right aways so they post again.

      If this happens to you, simply notify a moderator with the report feature in the post, and politely ask them to delete it.

    • If you're just creating another topic because your original topic is not being answered the way you want or at all, this is not tolerated. You could lose your posting privileges all together over it.
  • Non-English languages

    • If English is not your primary language, please make an attempt to interpret (yourself or online) and post that interpretation.

      We have wonderful users from around the world, so after you've done your post in English, back it up with your question also in your native tongue (You may find your answer much quicker using both).

That's it for now, I hope you have a wonderful learning experience, and hope to see you contribute to the community as your knowledge grows.
Link to comment
Share on other sites

You can run as many instances of autoIT as you want.

1) No single script will lock control over the mouse you can have as many as you want running.

However if you have multiple scripts trying to move your mouse around it's going to be tough to manage if possible at all. Depends on what your doing.

2) With direct mouse actions you couldn't do it on a minimzed window. You would have to have the script maximize the window do what it wants and minimize it again

3) With all of the above and your mouse moving by itself you of course wouldn't be able to use your computer.

I would look at "Control" commands in the help file such as ControlClick and ControlSend.

They would allow you ao automate things in multiple minimized windows without effecting each other.

And you should be able to use your PC while their working no problem.

-Kenny

Edited by ken82m

 "I believe that when we leave a place, part of it goes with us and part of us remains... Go anywhere, when it is quiet, and just listen.. After a while, you will hear the echoes of all our conversations, every thought and word we've exchanged.... Long after we are gone our voices will linger in these walls for as long as this place remains."

Link to comment
Share on other sites

  • Developers

Hello,

I've been working with AutoIt for a little over 2 weeks now, and so far I've only created simple point and click automations.

It's working out great for me, but, I'd like to know if I can run multiple instances of AutoIt without one taking mouse control over the other. I want to be able to have a bunch of automations running, each working on its own, and I would like to run them on miminized windows so that I still have control over the computer.

Is this possible with AutoIt? Or must I run the automations on multiple computers?

Thanks!

Multiple script can be ran in parallel but obviously there is only one mouse to direct. You should try to use the ControlXXXX() Functions which does allow multiple tasks on different windows/controls.

Jos

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Link to comment
Share on other sites

So, if I understand correctly, the "ControlClick" function should be able to click inside a minimized window without having to open it?

Also, Could I add a window handle in the PixelGetColor function to get pixel colors from a minimized window?

I sincerely thank you for your speedy replies.

Link to comment
Share on other sites

I don't see the getcolor working since the window is minimized it's not filling any pixels on your desktop.

But yes the ControlClick should be able to click inside a minimized window no problem.

It directly instructs the windows itself that the button has been "clicked".

So you can be moving your mouse and clicking on other things while that's happening no problem.

And your welcome.

-Kenny

 "I believe that when we leave a place, part of it goes with us and part of us remains... Go anywhere, when it is quiet, and just listen.. After a while, you will hear the echoes of all our conversations, every thought and word we've exchanged.... Long after we are gone our voices will linger in these walls for as long as this place remains."

Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...