Decker87 Posted June 11, 2009 Share Posted June 11, 2009 Hi. I'm trying to write a background script that scrolls through another window's control, one pixel at a time, and captures a really tall image of it. Is there such a way to scroll "one pixel at a time"? All I can really think of right now is sending a pageup/pagedown key, or sending the up/down keys. Any better ideas? Link to comment Share on other sites More sharing options...
Valuater Posted June 11, 2009 Share Posted June 11, 2009 The Trick here is the Function "OCR" expandcollapse popup#include <GuiConstants.au3> Opt("MouseCoordMode", 2) ;1=absolute, 0=relative, 2=client Opt("PixelCoordMode", 2) ;1=absolute, 0=relative, 2=client Dim $Paused HotKeySet("{PAUSE}", "TogglePause") HotKeySet("{ESC}", "Terminate") GUICreate("test window", 400, 300) GUICtrlCreateLabel("Array position", 5, 25) GUICtrlCreateLabel("$Ax and $Ay position", 110, 25) ;GUICtrlCreatePic(@ScriptDir &"\colors.jpg", 145, 0, 40, 21) GUICtrlSetBkColor(-1,0x00ff00) ; Green GUICtrlCreateLabel("", 145, 8, 28, 8) GUICtrlSetBkColor(-1,0xff0000) ; Red GUICtrlCreateLabel("", 145, 16, 28, 8) GUICtrlSetBkColor(-1,"") ; Black GUICtrlCreateLabel("RGB Mouse Color Found ", 250, 25) $color1 = GUICtrlCreateLabel("", 300, 3, 20, 20) $Edit1 = GUICtrlCreateEdit("", 50, 50, 300, 200) GUICtrlCreateLabel("Press *Pause* to Stop/Resume or Press *ESC* to Exit ", 60, 270) GUISetState() _ocr(150, 0, 170, 20) While GUIGetMsg() <> -3 WEnd Func _ocr($Ax, $Ay, $Dx, $Dy) $By = $Ay $width = $Dx - $Ax $length = $Dy - $Ay Dim $char[$width][$length] For $xwidth = 0 To $width -1 $Ax = $Ax +1 $Ay = $By For $xlength = 0 To $length -1 $char[$xwidth][$xlength] = Hex(PixelGetColor($Ax, $Ay), 6) GUICtrlSetData($Edit1, "Hex Color at " & $Ax & " and " & $Ay & " is " & $char[$xwidth][$xlength] & @CRLF, 1) MouseMove($Ax + 2, $Ay) GUICtrlSetBkColor( $color1, (PixelGetColor($Ax, $Ay))) Sleep(100) $Ay= $Ay+1 Next Next Return $char EndFunc Func TogglePause() $Paused = NOT $Paused While $Paused sleep(100) ToolTip('Script is "Paused"',0,0) WEnd ToolTip("") EndFunc Func Terminate() Exit 0 EndFunc 8) 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