Sign in to follow this  
Followers 0
dranael

Script Help (pixel detection)

12 posts in this topic

I was going to tackle a script over the next few days. I have never attempted to write my own script and was wondering if this is easy to do. Maybe if it was really simple someone could write one up for me.

I am trying to make a script that when you hold down Q it starts pixel detecting. If it detects red then it will right click once.

The screen resolution is 1920 X 1080 or 1200. I think its 1080.

The script sounds really simple to make. What do you guys think?

Share this post


Link to post
Share on other sites



dranael,

First, welcome to the AutoIt forums. :graduated:

When you post here it always helps if you have had a go at solving your problems beforehand. Having some code to work on is a great help - and no-one here is too keen to help the "code it for me" posters. Think of the old saying: "Give a man a fish, you feed him for a day; give a man a net and you feed him forever". We try to be net makers and repairers, not fishmongers. ;)

Reading the Help file (at least the first few sections - Using AutoIt, Tutorials and the first couple of References) will help you enormously. You should also look at the excellent tutorials that you will find here and here - you will find other tutorials in the Wiki (the link is at the top of the page). There are even video tutorials on YouTube if you prefer watching to reading. I know you want to start coding NOW, but a little study will save you a lot of trouble later on, believe me. :)

Once you have a good handle on how AutoIt works, look carefully at the following functions:

_IsPressed, PixelGetColor, PixelSearch, MouseClick

They will help you do what you want. Good luck. ;)

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

Thanks for the info. I don't mind doing it myself. I plan on going through all the tutorials.

I just didnt know if it was something easy and someone already had something similar to just make a few changes to.

I think I will start working on it tonight and see how far I can get.

Share this post


Link to post
Share on other sites

Alright so this is what I ended up with. But it does not work at all. The red i am looking for is to the right of the center of the screen just an inch or so. I am on a 1920 x 1080 resolution.

HotKeySet("q","q_Func")

While Sleep(10) ;Idle around

Wend

Func q_Func() ; function called every time q is pressed

$Coords = PixelSearch( 0, 0, 20, 300, 0xFF0000, 10 )

If NOT @Error Then ; if no error finding color:

MouseClick("right",$Coords[0],$Coords[1]) ; click on coords

EndIf

EndFunc

Any ideas?

Share this post


Link to post
Share on other sites

Your coordinates are WAY off if you wanted to look in the middle of the screen.


If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Share this post


Link to post
Share on other sites

ok i revised it a lot and it still doesnt work. Anyone able to help?

Global Const $Area[4] = [@DesktopWidth/2 -100, @DesktopHeight/2 + 100, @DesktopWidth/2 +100, @DesktopHeight/2 -100]

HotKeySet("q","q_Func")

While True

Sleep (10) ;Idle around

WEnd

Func q_Func() ; function called every time q is pressed

$Coords = PixelSearch( $Area[0],$Area[1],$Area[2],$Area[3], 0x7F1A19, 50 )

If NOT @Error Then ; if no error finding color:

MouseClick("left") ; click on coords

EndIf

EndFunc

Share this post


Link to post
Share on other sites

Are you sure it's the right color in your PixelSearch? Are you sure that the one pixel you're looking at is the right pixel to look at, would searching a larger area get you the pixel you're looking for? Have you tried PixelGetColor to see if you're looking at the right color?


If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Share this post


Link to post
Share on other sites

I used pixeur to get the color, but the color seems to change exact shades sometimes. So I set the shade 50 +

Maybe I need to set that higher?

Share this post


Link to post
Share on other sites

I am trying to make a script that when you hold down Q it starts pixel detecting. If it detects red then it will right click once.

Your script does not start detecting, but it scans only once. Also you do not right click, but left click.

Share this post


Link to post
Share on other sites

Can you help me fix it? the left right click thing is no big deal. I test it with left click.

Share this post


Link to post
Share on other sites

shade-variation parameter at 50 is too much(if my calculus are not wrong)

Posted Image

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