TonDeli Posted July 26, 2014 Share Posted July 26, 2014 I have located a red pixel on my screen with PixelSearch as $coord1. That red pixel will move to other location as $coord2. If the difference it let's say 5 pixels, I have to do something... Also I'd like to add time for this loop. I'd like to run this search only for 30 sec. $coord1= PixelSearch($left, $top, $right, $bottom, $color, $variation) for $time=300 to 1 step -1 if $time=1 then msgbox("info","Pixel didn't move") else $coord2= PixelSearch($left, $top, $right, $bottom, $color, $variation) if $coord1 - $coord2 > 5 then ;does this really calculate the difference? msgbox("info","Pixel moved") endif endif next I'd like to get some ideas how to calculate the difference between two pixels and it the difference is something I'd like to do something. I can see on my screen that the red pixel is in the different location but it won't start my next action. Link to comment Share on other sites More sharing options...
careca Posted July 26, 2014 Share Posted July 26, 2014 This works for me, and the color has to be unique. Local $left = 0 Local $top = 0 Local $right = @DesktopWidth Local $bottom = @DesktopHeight Local $color = 0xFF0000 Local $variation = 10 Local $Time $coord1 = PixelSearch($left, $top, $right, $bottom, $color, $variation) If @error = 1 Then MsgBox(64, 'Error', 'No pixel with that color found!') Exit EndIf While 1 Sleep(60) $Time = $Time + 0.1 ConsoleWrite('$Time '& $Time &@CRLF) If $Time <= 29.9 Then $coord2 = PixelSearch($left, $top, $right, $bottom, $color, $variation) If Not @error Then If $coord1[0] - $coord2[0] > 5 OR $coord1[1] - $coord2[1] > 5 Then $coord1 = PixelSearch($left, $top, $right, $bottom, $color, $variation) MsgBox(64, "info", "Pixel moved") EndIf EndIf EndIf If $Time >= 29.9 Then Exit EndIf WEnd Spoiler Renamer - Rename files and folders, remove portions of text from the filename etc. GPO Tool - Export/Import Group policy settings. MirrorDir - Synchronize/Backup/Mirror Folders BeatsPlayer - Music player. Params Tool - Right click an exe to see it's parameters or execute them. String Trigger - Triggers pasting text or applications or internet links on specific strings. Inconspicuous - Hide files in plain sight, not fully encrypted. Regedit Control - Registry browsing history, quickly jump into any saved key. Time4Shutdown - Write the time for shutdown in minutes. Power Profiles Tool - Set a profile as active, delete, duplicate, export and import. Finished Task Shutdown - Shuts down pc when specified window/Wndl/process closes. NetworkSpeedShutdown - Shuts down pc if download speed goes under "X" Kb/s. IUIAutomation - Topic with framework and examples Au3Record.exe Link to comment Share on other sites More sharing options...
Geir1983 Posted July 26, 2014 Share Posted July 26, 2014 Thats not realy a good way to make a function run for 30 seconds.. Its totaly based on the execution time of the function and will vary from each execution , not to mention different cpus will have a different base line... Why not use standard TimerDiff? Link to comment Share on other sites More sharing options...
JohnOne Posted July 26, 2014 Share Posted July 26, 2014 It only tests 2 directions of a pixel move also. AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans. Link to comment Share on other sites More sharing options...
TonDeli Posted July 26, 2014 Author Share Posted July 26, 2014 This works for me, and the color has to be unique. Thank you! I'll give it a try. Why not use standard TimerDiff? This one seems interesting. I'll try this one also!! It only tests 2 directions of a pixel move also. I only want to see if my pixel moves during 30sec time, nothing more. If pixel move, I'd like to do something. Not sure what do you mean by this... Link to comment Share on other sites More sharing options...
Geir1983 Posted July 26, 2014 Share Posted July 26, 2014 (edited) I only want to see if my pixel moves during 30sec time, nothing more. If pixel move, I'd like to do something. Not sure what do you mean by this... He means the example posted will only detect if a pixel moves in the positive direction of the start posistion.. You should use Abs() to also detect movement in the negative direction.. Or what about a vector length from the start position? Edited July 26, 2014 by Geir1983 Link to comment Share on other sites More sharing options...
TonDeli Posted July 26, 2014 Author Share Posted July 26, 2014 He means the example posted will only detect if a pixel moves in the positive direction of the start posistion.. You should use Abs() to also detect movement in the negative direction.. Or what about a vector length from the start position? Oh dear... you are right! I have to add that. Thank you! Link to comment Share on other sites More sharing options...
careca Posted July 26, 2014 Share Posted July 26, 2014 Sorry guys, i was up for too long, you're all correct, free to add the sugestions to the code. About the "only 2 directions" issue.. Something like this maybe? If $coord1[0] - $coord2[0] > 5 OR $coord1[1] - $coord2[1] > 5 Then $coord1 = PixelSearch($left, $top, $right, $bottom, $color, $variation) MsgBox(64, "info", "Pixel moved") ElseIf $coord1[0] - $coord2[0] < 5 OR $coord1[1] - $coord2[1] < 5 Then $coord1 = PixelSearch($left, $top, $right, $bottom, $color, $variation) MsgBox(64, "info", "Pixel moved") ElseIf ($coord1[0] - $coord2[0])+($coord1[1] - $coord2[1]) < 5 OR ($coord1[0] - $coord2[0])+($coord1[1] - $coord2[1]) > 5 Then $coord1 = PixelSearch($left, $top, $right, $bottom, $color, $variation) MsgBox(64, "info", "Pixel moved") EndIf Spoiler Renamer - Rename files and folders, remove portions of text from the filename etc. GPO Tool - Export/Import Group policy settings. MirrorDir - Synchronize/Backup/Mirror Folders BeatsPlayer - Music player. Params Tool - Right click an exe to see it's parameters or execute them. String Trigger - Triggers pasting text or applications or internet links on specific strings. Inconspicuous - Hide files in plain sight, not fully encrypted. Regedit Control - Registry browsing history, quickly jump into any saved key. Time4Shutdown - Write the time for shutdown in minutes. Power Profiles Tool - Set a profile as active, delete, duplicate, export and import. Finished Task Shutdown - Shuts down pc when specified window/Wndl/process closes. NetworkSpeedShutdown - Shuts down pc if download speed goes under "X" Kb/s. IUIAutomation - Topic with framework and examples Au3Record.exe Link to comment Share on other sites More sharing options...
Malkey Posted July 27, 2014 Share Posted July 27, 2014 Try this. Local $left = 10, $top = 10, $right = 100, $bottom = 100, $color = 0xFFFFFF, $variation = 90 Local $coord1 = PixelSearch($left, $top, $right, $bottom, $color, $variation) If @error Then MsgBox(0, "Notice", "Initial pixel color not found") Exit EndIf Local $iTime = 0, $coord2 Local $hTimer = TimerInit() While TimerDiff($hTimer) < 30000 $coord2 = PixelSearch($left, $top, $right, $bottom, $color, $variation) If Abs($coord1[0] - $coord2[0]) >= 5 Or Abs($coord1[1] - $coord2[1] >= 5) Then $iTime = TimerDiff($hTimer) ExitLoop EndIf Sleep(10) WEnd If $iTime Then MsgBox(64, "info", "Pixel moved in " & Round($iTime / 1000, 3) & " secs") Else MsgBox(64, "info", "Pixel did not moved in 30 secs") EndIf Link to comment Share on other sites More sharing options...
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