You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
322 lines
11 KiB
322 lines
11 KiB
#include <GUIconstants.au3> |
|
#include <GUIConstantsEx.au3> |
|
#include<Misc.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("PC", 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) |
|
|
|
GUISetIcon (@ScriptDir & "\pipette.ico") |
|
|
|
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 |
|
|
|
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 |
|
|
|
Func _exit() |
|
Exit |
|
EndFunc |