A small label that sits below your mouse that follows the cursor around. It gives exact screen coordinates if working solely on a desktop. If you work within any "active" client window, it will change coordinate options to match the current active window. This is useful if you want to find coordinates within any window or just with your desktop.
Traytooltip shows the name of the currently active window. If no active window, it defaults to "desktop".
When you press ALT + F it will create a color.txt file and enter the date, time, (x,y coords) and hex color of the point your mouse is on. It will continue to append for every alt+f press you make.
If you want to terminate the app, press Alt + ESC.
#include <GuiConstants.au3> #include <date.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <EditConstants.au3> #include <StaticConstants.au3> Opt("GUIOnEventMode", 1) Opt("WinTitleMatchMode", 4) ; set title matchmode to advanced Global $xoffset = 37 Global $yoffset = 23 Global $wposx, $wposy, $DT, $cWIN, $xcalcL, $xcalcR, $ycalc, $cpos, $pos, $tpos, $hexV, $_color Global $title = "Your Title Here" HotKeySet("!{ESC}", "Terminate") ; a way out of this HotKeySet("!f", "_color"); check for color $pGUI = GUICreate($title, 150, 13, -1, -1, $WS_POPUP) $startLAB = GUICtrlCreateLabel(" X: 0000, Y: 0000, C: 000000000", 0, 0, 150, 13) GUICtrlSetBkColor($startLAB, 0xCCFFFF) WinSetOnTop($pGUI, "", 1) GUISetState(@SW_SHOW) While 1 _checkWIN() _nMGP() WEnd Func _nMGP() Sleep(0010) $pos = MouseGetPos() If not IsArray($pos) then return $_color = PixelGetColor($pos[0],$pos[1]) GUICtrlSetData($startLAB, ' X: ' & $pos[0] & ', Y: ' & $pos[1] & ', C: ' & $_color) If $DT = 1 Then $xcalcR = .95 * @DesktopWidth $xcalcL = .05 * @DesktopWidth $ycalc = .90 * @DesktopHeight If $pos[1] > $ycalc Then $wposy = $pos[1] - $yoffset * 2 ; If too close to bottom of screen position above mouse pointer Else $wposy = $pos[1] + $yoffset ; Position label beneath the mouse pointer EndIf If $pos[0] > $xcalcR Then ; If too close to right side of screen move it $wposx = $pos[0] - $xoffset * 3 ElseIf $pos[0] < $xcalcL Then ; If too close to left side of screen move it $wposx = $pos[0] + 10 Else $wposx = $pos[0] - $xoffset ; Use normal offsets for positioning label EndIf Else _clientmouse() EndIf WinMove($title, "", $wposx, $wposy) ; Move the label appropriate to follow the mouse EndFunc ;==>_nMGP Func _checkWIN() $cWIN = WinGetTitle("[ACTIVE]") If $cWIN <> $title Then TrayTip("", $cWIN, 30) Opt("MouseCoordMode", 0) $DT = 0 Else TrayTip("", "DESKTOP", 30) Opt("MouseCoordMode", 1) $DT = 1 EndIf EndFunc ;==>_checkWIN Func _clientmouse() Opt("MouseCoordMode", 1) $tpos = MouseGetPos() $_color = PixelGetColor($tpos[0],$tpos[1]) Global $cpos = WinGetPos($cWIN) If not IsArray($cpos) then return $xcalcR = .95 * $cpos[2] $xcalcL = .05 * $cpos[2] $ycalc = .90 * $cpos[3] If $tpos[1] > $ycalc Then $wposy = $tpos[1] - $yoffset * 2 ; If too close to bottom of screen position above mouse pointer Else $wposy = $tpos[1] + $yoffset ; Position label beneath the mouse pointer EndIf If $tpos[0] > $xcalcR Then ; If too close to right side of screen move it $wposx = $tpos[0] - $xoffset * 3 ElseIf $tpos[0] < $xcalcL Then ; If too close to left side of screen move it $wposx = $tpos[0] + 10 Else $wposx = $tpos[0] - $xoffset ; Use normal offsets for positioning label EndIf EndFunc ;==>_clientmouse Func _color() Local $_cpos = MouseGetPos() Local $pcolor $pcolor = PixelGetColor($_cpos[0],$_cpos[1]) $hexV = "0x" & Hex($pcolor,6) Local $fOpen = FileOpen(@ScriptDir & "\color.txt",1) FileWrite($fOpen,@CRLF & _NowDate() & " " & _NowTime() & " : " & "X: " & $_cpos[0] & _ "," & "Y: " & $_cpos[1] & " | " & "Hex: " & $hexV & " Color: " & $pcolor) FileClose($fOpen) EndFunc Func Terminate() Exit 0 EndFunc ;==>Terminate
Example Output
2/11/2009 2:11:04 PM : X: 774,Y: 612 Hex: 0xFCFCFC Color: 16579836
2/11/2009 2:11:04 PM : X: 855,Y: 432 Hex: 0xE8F5FD Color: 15267325
Edited by Ealric, 11 February 2009 - 07:11 PM.






