art777 Posted September 12, 2022 Posted September 12, 2022 After some hours I reached a point where there is nothing more than I can try to resolve this problem. I would appreciate your help guys. expandcollapse popup#include <AutoItConstants.au3> #RequireAdmin #include <MsgBoxConstants.au3> Local $aCoord Local $options Local $actions = 2 Local $1C = 141 Local $2C = 109 Local $3C = 143 Local $4C = 113 Local $Actx = 155 Local $Acty = 71 Local $Act Local $1Act = 4 Local $2Act = 2 For $x = 1 To $actions For $i = 2 To 6 $aCoord = PixelSearch($1C, $2C,$3C, $4C,0x00AEEF) $2C += 19 $4C += 19 If @error Then $options = $i ExitLoop EndIf Next If $x = 1 Then $Act = $1Act ElseIf $x = 2 Then $Act = $2Act EndIf $Acty = $Acty + ($options - $Act) * 19 MouseClick($MOUSE_CLICK_LEFT, $Actx, $Acty, 1,0) $Actx += 117 $Acty = 71 $1C += 117 $3C += 117 $2C = 109 $4C = 113 Next On the first iteration when $x = 1 everything is working perfectly but on the second one the Pixel Search doesnt recognize the color. The strange thing is when I put MsgBox($MB_SYSTEMMODAL, "Title", $1C&$2C&$3C&$4C, 10) this code exactly before Pixel Search and check the coordinates without changing anything else in the code, everything is working as it should.
Luke94 Posted September 12, 2022 Posted September 12, 2022 (edited) Are you aware that on the second loop you're not resetting the values of $1C, $2C, $3C, $4C to their original states? It may be intended but on two loops you're searching these pixels: Quote PixelSearch(141, 109, 143, 113, 0x00AEEF) PixelSearch(141, 128, 143, 132, 0x00AEEF) PixelSearch(141, 147, 143, 151, 0x00AEEF) PixelSearch(141, 166, 143, 170, 0x00AEEF) PixelSearch(141, 185, 143, 189, 0x00AEEF) PixelSearch(258, 109, 260, 113, 0x00AEEF) PixelSearch(258, 128, 260, 132, 0x00AEEF) PixelSearch(258, 147, 260, 151, 0x00AEEF) PixelSearch(258, 166, 260, 170, 0x00AEEF) PixelSearch(258, 185, 260, 189, 0x00AEEF) If that's not what you're intending, try setting the variable back to the default values: For $x = 1 To $actions $1C = 141 $2C = 109 $3C = 143 $4C = 113 For $i = 2 To 6 This was a stab in the dark but maybe it'll help lol. Edit: Snipped the bit about @error because increment a variable doesn't reset @error. Edited September 12, 2022 by Luke94
Solution water Posted September 12, 2022 Solution Posted September 12, 2022 Can you please tell us which program you try to automate? Pixelsearch and Mouseclick aren't very reliable as they depend on screen resolution, window position etc. My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
art777 Posted September 12, 2022 Author Posted September 12, 2022 Thank you guys for your advice. I did tried PixelGetColor and now it is working.
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