KaFu Posted October 1, 2008 Share Posted October 1, 2008 This script was also the basis for my COP script. Here's a quick and dirty update of the original code. expandcollapse popup#cs ---------------------------------------------------------------------------- AutoIt Version: 3.2.12.1 Author: Nahuel (3.2.10.0) KaFu (update to 3.2.12.1) 2008-Oct-01 Url: http://www.autoitscript.com/forum/index.php?showtopic=53471 Script Function: Pixel Color V2., Now with magnifier and some other stuff (updated to 3.2.12.1) #ce ---------------------------------------------------------------------------- #include<GUIconstants.au3> #include<Misc.au3> #include<WindowsConstants.au3> #include<EditConstants.au3> #include<StaticConstants.au3> #NoTrayIcon Opt("WinTitleMatchMode", 4) Opt("WinWaitDelay", 0) Opt("GUIonEventMode",1) ;~ Global $SRCCOPY = 0x00CC0020 Global $leave = 0 Global $Paused=0 $MouseModifier = 1 $PressedTime = 1 HotKeySet("{PAUSE}", "TogglePause") HotKeySet("{INS}", "_copyHEX") Tooltip("AU3MAG", 0, 0,"","",4) $MyhWnd = WinGetHandle("classname=tooltips_class32") GUICreate("Pixel Color", 180, 410,0, 0, -1, $WS_EX_TOPMOST) GUISetOnEvent($GUI_EVENT_CLOSE,"_exit") GUICtrlCreateGroup(" Mouse coords ", 10, 10, 160, 50) GUICtrlCreateLabel("X:", 25, 33, 15, 15) $MousePosX=GUICtrlCreateInput("", 40, 30, 40, 20, $ES_READONLY) GUICtrlCreateLabel("Y:", 90, 33, 15, 15) $MousePosY=GUICtrlCreateInput("", 105, 30, 40, 20, $ES_READONLY) GUICtrlCreateGroup(" Color codes ", 10, 70, 160, 110) GUICtrlCreateLabel("Decimal:", 25, 93, 50, 15) $PixelColor=GUICtrlCreateInput("", 80, 90, 70, 20, $ES_READONLY) GUICtrlCreateLabel("Hex:", 25, 123, 50, 15) $hexColor=GUICtrlCreateInput("", 80, 120, 70, 20,$ES_READONLY) GUICtrlCreateLabel("Color:", 25, 153, 50, 15) $MostrarColor=GUICtrlCreateLabel("", 80, 150, 70, 20,$ES_READONLY) GUICtrlCreateGroup(" Special options ", 10, 190, 160, 145) $RB_Full = GUICtrlCreateRadio("Full Screen", 25, 210, 100, 20) GUICtrlSetState(-1, $GUI_CHECKED) $RB_Window = GUICtrlCreateRadio("Active Window", 25, 230, 100, 20) $Mag= GUICtrlCreateCheckbox("Magnify", 25, 250, 100, 20) $Solid= GUICtrlCreateRadio("Solid crosshair", 35, 270, 100, 20) $Inver= GUICtrlCreateRadio("Inverted crosshair", 35, 290, 120, 20) $KeyBMouse= GUICtrlCreateCheckbox("Move cursor with keyb.", 25, 310, 140, 20) $Ayuda=GUICtrlCreateButton("Help",10,345,77) GUICtrlSetOnEvent(-1,"Ayuda") $Saltar=GUICtrlCreateButton("Jump to",92,345,77) GUICtrlSetOnEvent(-1,"Saltar") GUICtrlCreateLabel("PAUSE: Freeze/Unfreeze", 0, 380 ,180,15,$SS_CENTER) GUICtrlSetColor(-1,0x00808080) GUICtrlCreateLabel("INS: Copy hex code to clipboard", 0, 395 ,180,15,$SS_CENTER) GUICtrlSetColor(-1,0x00808080) GUISetState() data() Func data() While 1 Sleep(50) Opt("WinTitleMatchMode",4) If (_IsPressed(25) + _IsPressed(26) + _IsPressed(27) + _IsPressed(28)) = 0 Then _ResetSpeed() EndIf $msg=GUIGetMsg() Select Case $msg=$GUI_EVENT_CLOSE Exit EndSelect If GUICtrlRead($KeyBMouse)=$GUI_CHECKED Then MouseKeyb() Else MouseKeybNO() EndIf If GUICtrlRead($Mag)=$GUI_CHECKED Then GUICtrlSetState($RB_Window,$GUI_DISABLE) GUICtrlSetState($Solid,$GUI_ENABLE) GUICtrlSetState($Inver,$GUI_ENABLE) GUICtrlSetState($RB_Full,$GUI_CHECKED) WinSetState($MyhWnd,"",@SW_SHOW) MAG() Else GUICtrlSetState($Solid,$GUI_DISABLE+$GUI_UNCHECKED) GUICtrlSetState($Inver,$GUI_DISABLE+$GUI_UNCHECKED) GUICtrlSetState($RB_Window,$GUI_ENABLE) WinSetState($MyhWnd,"",@SW_HIDE) EndIf If GUICtrlRead($RB_Full) = $GUI_CHECKED Then Opt("MouseCoordMode", 1) Opt("PixelCoordMode", 1) $pos=MouseGetPos() $color=PixelGetColor($pos[0],$pos[1]) GUICtrlSetData($MousePosX, $pos[0]) GUICtrlSetData($MousePosY, $pos[1]) GUICtrlSetData($PixelColor,$color) $HEX6=StringRight(Hex($color),6) GUICtrlSetData($hexColor,"0x"&$HEX6) GUICtrlSetBkColor($MostrarColor,"0x"&Hex($color)) Else Opt("MouseCoordMode", 0) Opt("PixelCoordMode", 0) Opt("WinTitleMatchMode",1) $win = WinGetPos("") $pos=MouseGetPos() If $pos[0] >= 0 And $pos[0] <= $win[2] and $pos[1] >= 0 And $pos[1] <= $win[3] Then $color=PixelGetColor($pos[0],$pos[1]) GUICtrlSetData($MousePosX, $pos[0]) GUICtrlSetData($MousePosY, $pos[1]) GUICtrlSetData($PixelColor,$color) $HEX6=StringRight(Hex($color),6) GUICtrlSetData($hexColor,"0x"&$HEX6) GUICtrlSetBkColor($MostrarColor,"0x"&Hex($color)) Else GUICtrlSetData($MousePosX, "----") GUICtrlSetData($MousePosY, "----") GUICtrlSetData($PixelColor,"") GUICtrlSetData($hexColor,"") EndIf EndIf WEnd EndFunc Func TogglePause() $Paused = NOT $Paused While $Paused sleep(10) $msg=GUIGetMsg() Select Case $msg=$GUI_EVENT_CLOSE Exit EndSelect WEnd EndFunc Func MAG() $MyHDC = DLLCall("user32.dll","int","GetDC","hwnd",$MyhWnd) If @error Then Return $DeskHDC = DLLCall("user32.dll","int","GetDC","hwnd",0) If Not @error Then $xy = MouseGetPos() If Not @error Then $l = $xy[0]-10 $t = $xy[1]-10 DllCall("gdi32.dll","int", "StretchBlt", "int", $MyHDC[0], "int", 0, "int", 0, "int", 100, "int", 100, "int", $DeskHDC[0], "int", $l, "int", $t, "int", 20, "int", 20, "long", $SRCCOPY) If $xy[0]<(@DesktopWidth-120) then $XArea= $xy[0] + 20 Else $XArea= $xy[0] - 120 EndIf If $xy[1]<(@DesktopHeight-120) then $YArea= $xy[1] + 20 Else $YArea= $xy[1] - 120 EndIf WinMove($myhwnd, "",$XArea,$YArea , 100, 100) If GUICtrlRead($Solid)=$GUI_CHECKED Then CrossHairsSOLID($MyHDC[0]) EndIf If GUICtrlRead($Inver)=$GUI_CHECKED Then CrossHairsINV($MyHDC[0]) EndIf EndIf DLLCall("user32.dll","int","ReleaseDC","int",$DeskHDC[0],"hwnd",0) EndIf DLLCall("user32.dll","int","ReleaseDC","int",$MyHDC[0],"hwnd",$MyhWnd) EndFunc Func Ayuda() MsgBox(0,"Help","*Use magnifier for more presicion." & @CRLF & "" & @CRLF & "*Use 'move cursor with keyboard' option for more presicion." & @CRLF & " -Keeping arrow key pressed increases speed." & @CRLF & " -Shift+'arrow' moves mouse cursor faster." & @CRLF & "" & @CRLF & "*Use 'Jump to' to move mouse cursor to a specified pixel" & @CRLF & @CR&"*Press PAUSE to freeze and unfreeze." & @CRLF & "" & @CRLF &"*Press INS to copy HEX code to clipboard.") EndFunc Func Saltar() Do $SaltarCord=InputBox("Jump to","Enter pixel coordinates you want to jump to."&@CRLF&"Example: 123,420",MouseGetPos(0)&","&MouseGetPos(1),"",150,150) $CoordsM=StringSplit($SaltarCord,",") Until @error OR ($CoordsM[1]<=@DesktopWidth AND $CoordsM[2]<=@DesktopHeight) if not @error Then BlockInput(1) MouseMove($CoordsM[1],$CoordsM[2]) BlockInput(0) EndIf EndFunc Func MouseKeyb() HotKeySet("+{UP}", "_UpArrow") HotKeySet("{UP}", "_UpArrow") HotKeySet("+{DOWN}", "_DownArrow") HotKeySet("{DOWN}", "_DownArrow") HotKeySet("+{LEFT}", "_LeftArrow") HotKeySet("{LEFT}", "_LeftArrow") HotKeySet("+{RIGHT}", "_RightArrow") HotKeySet("{RIGHT}", "_RightArrow") EndFunc Func MouseKeybNO() HotKeySet("+{UP}") HotKeySet("{UP}") HotKeySet("+{DOWN}") HotKeySet("{DOWN}") HotKeySet("+{LEFT}") HotKeySet("+{LEFT}") HotKeySet("{LEFT}") HotKeySet("+{RIGHT}") HotKeySet("{RIGHT}") EndFunc Func nada() EndFunc Func _copyHEX() ClipPut(Guictrlread($hexColor)) EndFunc;==>_ShowInfo Func _UpArrow() Local $MousePos = MouseGetPos() If _IsPressed(10) Then $i = 10 Else $i = 1 EndIf If $MousePos[1] > 0 Then _BoostMouseSpeed() MouseMove($MousePos[0], $MousePos[1] - ($MouseModifier * $i), 1) EndIf EndFunc;==>_UpArrow Func _DownArrow() If _IsPressed(10) Then $i = 10 Else $i = 1 EndIf Local $MousePos = MouseGetPos() If $MousePos[1] < @DesktopHeight Then _BoostMouseSpeed() MouseMove($MousePos[0], $MousePos[1] + ($MouseModifier * $i),1) EndIf EndFunc;==>_DownArrow Func _LeftArrow() If _IsPressed(10) Then $i = 10 Else $i = 1 EndIf Local $MousePos = MouseGetPos() If $MousePos[0] > 0 Then _BoostMouseSpeed() MouseMove($MousePos[0] - ($MouseModifier * $i), $MousePos[1],1) EndIf EndFunc;==>_LeftArrow Func _RightArrow() If _IsPressed(10) Then $i = 10 Else $i = 1 EndIf Local $MousePos = MouseGetPos() If $MousePos[0] < @DesktopWidth Then _BoostMouseSpeed() MouseMove($MousePos[0] + ($MouseModifier * $i), $MousePos[1],1) EndIf EndFunc;==>_RightArrow Func _BoostMouseSpeed() If IsInt($PressedTime / 10) Then $MouseModifier = $MouseModifier + 1 $PressedTime = $PressedTime + 1 Else $PressedTime = $PressedTime + 1 EndIf EndFunc Func _ResetSpeed() $MouseModifier = 1 $PressedTime = 1 EndFunc;==>_ResetSpeed Func CrossHairsSOLID(ByRef $hdc) Local $hPen, $hPenOld $hPen = DllCall("gdi32.dll", "hwnd", "CreatePen", "int", 0, "int", 5, "int", 0x555555) $hPenOld = DllCall("gdi32.dll", "hwnd", "SelectObject", "int", $hdc, "hwnd", $hPen[0]) DllCall("gdi32.dll", "int", "MoveToEx", "int", $hdc, "int", 52, "int", 0, "ptr", 0) DllCall("gdi32.dll", "int", "LineTo", "int", $hdc, "int", 52, "int", 46) DllCall("gdi32.dll", "int", "MoveToEx", "int", $hdc, "int", 52, "int", 58, "ptr", 0) DllCall("gdi32.dll", "int", "LineTo", "int", $hdc, "int", 52, "int", 100) DllCall("gdi32.dll", "int", "MoveToEx", "int", $hdc, "int", 0, "int", 52, "ptr", 0) DllCall("gdi32.dll", "int", "LineTo", "int", $hdc, "int", 46, "int", 52) DllCall("gdi32.dll", "int", "MoveToEx", "int", $hdc, "int", 58, "int", 52, "ptr", 0) DllCall("gdi32.dll", "int", "LineTo", "int", $hdc, "int", 100, "int", 52) DllCall("gdi32.dll", "hwnd", "SelectObject", "int", $hdc, "hwnd", $hPenOld[0]) DllCall("gdi32.dll", "int", "DeleteObject", "hwnd", $hPen[0]) EndFunc ;==>CrossHairsSOLID Func CrossHairsINV(ByRef $hdc) ;~ Local CONST $NOTSRCCOPY = 0x3300087 DllCall("gdi32.dll", "int", "BitBlt", "int", $hdc, "int", 50, "int", 0, "int", 5, "int", 49, "int", $hdc, "int", 50, "int", 0, "int", $NOTSRCCOPY) DllCall("gdi32.dll", "int", "BitBlt", "int", $hdc, "int", 50, "int", 56, "int", 5, "int", 49, "int", $hdc, "int", 50, "int", 56, "int", $NOTSRCCOPY) DllCall("gdi32.dll", "int", "BitBlt", "int", $hdc, "int", 0, "int", 50, "int", 49, "int", 5, "int", $hdc, "int", 0, "int", 50, "int", $NOTSRCCOPY) DllCall("gdi32.dll", "int", "BitBlt", "int", $hdc, "int", 56, "int", 50, "int", 44, "int", 5, "int", $hdc, "int", 56, "int", 50, "int", $NOTSRCCOPY) EndFunc ;==>CrossHairsINV Func _exit() Exit EndFunc Best Regards OS: Win10-22H2 - 64bit - German, AutoIt Version: 3.3.16.1, AutoIt Editor: SciTE, Website: https://funk.eu AMT - Auto-Movie-Thumbnailer (2022-Nov-26) BIC - Batch-Image-Cropper (2023-Apr-01) COP - Color Picker (2009-May-21) DCS - Dynamic Cursor Selector (2024-Feb-16) HMW - Hide my Windows (2018-Sep-16) HRC - HotKey Resolution Changer (2012-May-16) ICU - Icon Configuration Utility (2018-Sep-16) SMF - Search my Files (2023-Jun-03) - THE file info and duplicates search tool SSD - Set Sound Device (2017-Sep-16) Link to comment Share on other sites More sharing options...
Kilhian Posted October 1, 2008 Share Posted October 1, 2008 (edited) thanks but I already done this: update includes it's not enough magnify with crosshair doesn't work as it supposed to edit: it's vista's bug i launched kafu's cop script and had the same bug Edited October 1, 2008 by Kilhian Link to comment Share on other sites More sharing options...
Kilhian Posted April 24, 2009 Share Posted April 24, 2009 (edited) thanks but I already done this:update includesit's not enoughmagnify with crosshair doesn't work as it supposed toedit:it's vista's bugi launched kafu's cop script and had the same bug6 months later, I'm backhere is a screenI'm currently making an AutoIt application that will help ALS people like me who can't speak and have a bad sightthis magnify with a crosshair would be usefullThanksKilhian Edited April 24, 2009 by Kilhian Link to comment Share on other sites More sharing options...
KaFu Posted April 24, 2009 Share Posted April 24, 2009 I was said that this version works on Vista:http://www.autoitscript.com/forum/index.php?showtopic=91752 OS: Win10-22H2 - 64bit - German, AutoIt Version: 3.3.16.1, AutoIt Editor: SciTE, Website: https://funk.eu AMT - Auto-Movie-Thumbnailer (2022-Nov-26) BIC - Batch-Image-Cropper (2023-Apr-01) COP - Color Picker (2009-May-21) DCS - Dynamic Cursor Selector (2024-Feb-16) HMW - Hide my Windows (2018-Sep-16) HRC - HotKey Resolution Changer (2012-May-16) ICU - Icon Configuration Utility (2018-Sep-16) SMF - Search my Files (2023-Jun-03) - THE file info and duplicates search tool SSD - Set Sound Device (2017-Sep-16) Link to comment Share on other sites More sharing options...
bigc90210 Posted August 5, 2015 Share Posted August 5, 2015 first time poster, long time lurker. Tried this on win 10, works if screen is set to 100% text sizing. If you turn text sizing up (as an example i have it on 150% because i use a 4k monitor) then it throws everything off. Kind Regards 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