oSamplex Posted July 16, 2014 Posted July 16, 2014 "PixelSearch(0, 0, 0, 50, 0xFF0000, 25)" The time it takes for this Search is around 15-30ms. However increasing the Search area by quite some results that this search time is not increasing So im wondering if there are any other techniques to accomplish a faster search time for this little 1x50 area? (Im hoping to achieve 5-15ms) Thanks in advance.
Moderators JLogan3o13 Posted July 16, 2014 Moderators Posted July 16, 2014 I'm not sure that there is an "optimization" as such. What type of window or control are you looking for? Most people eventually leave PixelSearch behind for other methods, as there are much easier ways to accomplish window manipulation. "Profanity is the last vestige of the feeble mind. For the man who cannot express himself forcibly through intellect must do so through shock and awe" - Spencer W. Kimball How to get your question answered on this forum!
mLipok Posted July 16, 2014 Posted July 16, 2014 (edited) However increasing the Search area How you increase this area ? any example ? Edit: Welcome to the forum. Edited July 16, 2014 by mLipok Signature beginning:* Please remember: "AutoIt"..... * Wondering who uses AutoIt and what it can be used for ? * Forum Rules ** ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Code * for other useful stuff click the following button: Spoiler Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST API * ErrorLog.au3 UDF - A logging Library * Include Dependency Tree (Tool for analyzing script relations) * Show_Macro_Values.au3 * My contribution to others projects or UDF based on others projects: * _sql.au3 UDF * POP3.au3 UDF * RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF * SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF * SciTE - Lexer for console pane * Useful links: * Forum Rules * Forum etiquette * Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * Wiki: * Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Good coding practices in AutoIt * OpenOffice/LibreOffice/XLS Related: WriterDemo.au3 * XLS/MDB from scratch with ADOX IE Related: * How to use IE.au3 UDF with AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * IE in TaskScheduler * IE Embedded Control Versioning (use IE9+ and HTML5 in a GUI) * PDF Related: * How to get reference to PDF object embeded in IE * IE on Windows 11 * I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions * EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *I also encourage you to check awesome @trancexx code: * Create COM objects from modules without any demand on user to register anything. * Another COM object registering stuff * OnHungApp handler * Avoid "AutoIt Error" message box in unknown errors * HTML editor * winhttp.au3 related : * https://www.autoitscript.com/forum/topic/206771-winhttpau3-download-problem-youre-speaking-plain-http-to-an-ssl-enabled-server-port/ "Homo sum; humani nil a me alienum puto" - Publius Terentius Afer"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming" , be and \\//_. Anticipating Errors : "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty." Signature last update: 2023-04-24
Bert Posted July 16, 2014 Posted July 16, 2014 I'm not sure that there is an "optimization" as such. What type of window or control are you looking for? Most people eventually leave PixelSearch behind for other methods, as there are much easier ways to accomplish window manipulation. Agreed. What is the name of the application? I'm sure somebody here has already coded what you need and no point reinventing the wheel. The Vollatran project My blog: http://www.vollysinterestingshit.com/
oSamplex Posted July 16, 2014 Author Posted July 16, 2014 @mLipok Thanks, Im trying to figure out if there is any faster way to detect a certain colored pixel in an area. The thing is now that the size of this area does not have a big effect on time to find result and the area I'm searchin in is only 1x50, so it feels like a lot of wasted process time. So I hope I can reduce it, if there is an other way with pixel detect. I hope this clears it up. PixelSearch ( left, top, right, bottom, color [, shade-variation = 0 [, step = 1 [, hwnd]]] ) PixelSearch(0, 0, 0, 50, 0xFF0000, 25)
mLipok Posted July 16, 2014 Posted July 16, 2014 PixelSearch ( left, top, right, bottom, color [, shade-variation = 0 [, step = 1 [, hwnd]]] ) PixelSearch(0, 0, 0, 50, 0xFF0000, 25) I ask you how you increase this area. I asked for your code, not what HelpFile says. btw. Please answer to other members question because they have right. Signature beginning:* Please remember: "AutoIt"..... * Wondering who uses AutoIt and what it can be used for ? * Forum Rules ** ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Code * for other useful stuff click the following button: Spoiler Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST API * ErrorLog.au3 UDF - A logging Library * Include Dependency Tree (Tool for analyzing script relations) * Show_Macro_Values.au3 * My contribution to others projects or UDF based on others projects: * _sql.au3 UDF * POP3.au3 UDF * RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF * SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF * SciTE - Lexer for console pane * Useful links: * Forum Rules * Forum etiquette * Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * Wiki: * Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Good coding practices in AutoIt * OpenOffice/LibreOffice/XLS Related: WriterDemo.au3 * XLS/MDB from scratch with ADOX IE Related: * How to use IE.au3 UDF with AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * IE in TaskScheduler * IE Embedded Control Versioning (use IE9+ and HTML5 in a GUI) * PDF Related: * How to get reference to PDF object embeded in IE * IE on Windows 11 * I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions * EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *I also encourage you to check awesome @trancexx code: * Create COM objects from modules without any demand on user to register anything. * Another COM object registering stuff * OnHungApp handler * Avoid "AutoIt Error" message box in unknown errors * HTML editor * winhttp.au3 related : * https://www.autoitscript.com/forum/topic/206771-winhttpau3-download-problem-youre-speaking-plain-http-to-an-ssl-enabled-server-port/ "Homo sum; humani nil a me alienum puto" - Publius Terentius Afer"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming" , be and \\//_. Anticipating Errors : "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty." Signature last update: 2023-04-24
Shane0000 Posted July 16, 2014 Posted July 16, 2014 I dont think him increasing the search area is an issue. He wants faster results for his small area of search. I think he is saying that a 50X50 search area rakes 15-30s and a 100x100 search area also takes his PC 15-30s more or less. Does this pixel popup in a random location within this 50x50 search area? If not reduce the search size to just the location the pixel appears in. What is the purpose of the function? There maybe other methods that are faster in some instances depending on what you are interacting with.
oSamplex Posted July 16, 2014 Author Posted July 16, 2014 @Shane0000 You understand me, thanks for that. I already narrowed the area down where the pixel can popup, but this has no effect on process time compared to let's say 100x100 (I use 50x1 at this moment) It stays around 15-30ms which keeps me wondering if there is any faster way, because it's quite a bit.
jdelaney Posted July 16, 2014 Posted July 16, 2014 You are only selectively answering questions, which must be answered to get the best response. Go through prior posts, and respond to all questions. IEbyXPATH-Grab IE DOM objects by XPATH IEscriptRecord-Makings of an IE script recorder ExcelFromXML-Create Excel docs without excel installed GetAllWindowControls-Output all control data on a given window.
Moderators Melba23 Posted July 17, 2014 Moderators Posted July 17, 2014 oSamplex, You are only selectively answering questionsIndeed - but these are some questions you had best answer promptly. - Why the requirement for such speed of execution?- Why the requirement for "shade-variation"?- The coordinates you give (0, 0, 0, 50) are a single line of pixels down the top left side of the screen - why such a limited area?Over to you. 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
Bert Posted July 17, 2014 Posted July 17, 2014 oSamplex, Indeed - but these are some questions you had best answer promptly. - Why the requirement for such speed of execution? - Why the requirement for "shade-variation"? - The coordinates you give (0, 0, 0, 50) are a single line of pixels down the top left side of the screen - why such a limited area? Over to you. M23 I second this. I'm hoping I can learn something new here. The Vollatran project My blog: http://www.vollysinterestingshit.com/
oSamplex Posted July 17, 2014 Author Posted July 17, 2014 I've runned some tests with PixelSearch/PixelGetColor and they have as result they are quite slow to my taste 17-30ms. If there is no other library that might be faster or something else pixel-wise that could speed it up, I will accept it. I'm sure that I do rely on pixel detection on screen, so I'm not bothering answering questions about if it can be done without 'pixels', so I'm sorry if you feel different about that. $times = 100 $total = 0 For $i = 0 To $times $timer = TimerInit() Local $iColor = PixelGetColor(0, 50) $timer = TimerDiff($timer) $total = $timer + $total Next ConsoleWrite("'PixelGetColor' Average Time: " & $total / $times & "ms" & @CRLF) $total = 0 For $i = 0 To $times $timer = TimerInit() Local $aCoord = PixelSearch(0, 0, 50, 0, 0xFF0000, 60) $timer = TimerDiff($timer) $total = $timer + $total Next ConsoleWrite("'PixelSearch' Average Time: " & $total / $times & "ms" & @CRLF) ;~ Average search time 17-30ms of PixelGetColor and PixelSearch, ; but PixelGetColor has to be done multiple times to achieve the search area. ; My conclusion is that Pixel searches has some serious delay, ; where no other function exicst to replace to detect a pixel in an area.
Moderators Melba23 Posted July 17, 2014 Moderators Posted July 17, 2014 oSamplex, so I'm not bothering answering questionsSo we are not bothering giving answers. Thread locked. 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
Recommended Posts