Try
SmallMeasure!
It's a simple screen ruler. Just move the two "corners" to measure the distance.
When the mousebutton is down, you can use the arrow keys for fine grain movement.
Skrommel
;SmallMeasure.ahk
; A simple screen ruler
; Move the corners to measure the distance
; When the mousebutton is down, use the arrow keys for fine grain moving
;Skrommel @ 2008
#SingleInstance,Force
SetWindelay,0
CoordMode,ToolTip,Screen
size=15
Gui,1:+LastFound +Border -Caption +ToolWindow +AlwaysOnTop
gui1:=WinExist()
Gui,1:Color,0000FF
Gui,1:Margin,0,0
Gui,1:Font,S100
Gui,1:Add,Text,GMOVE Vvfrom,% Chr(255)
Gui,1:Show,W%size% H%size%
WinSet,Region,0-0 %size%-0 0-%size%,ahk_id %gui1%
Gui,2:+LastFound +Border -Caption +ToolWindow +AlwaysOnTop
gui2:=WinExist()
Gui,2:Color,FF0000
Gui,2:Margin,0,0
Gui,2:Font,S100
Gui,2:Add,Text,GMOVE Vvto,% Chr(255)
Gui,2:Show,W%size% H%size%
WinSet,Region,%size%-0 %size%-%size% 0-%size% ,ahk_id %gui2%
Return
~LButton::
MouseGetPos,mx,my,mwin,mctrl
If mwin In %gui1%,%gui2%
{
moving=1
SetTimer,MEASURE,100
Gosub,MEASURE
}
Return
~LButton Up::
If moving=1
{
moving=0
SetTimer,MEASURE,Off
ToolTip
}
~*Right::
If moving=1
MouseMove,1,0,0,R
Return
~*Left::
If moving=1
MouseMove,-1,0,0,R
Return
~*Up::
If moving=1
MouseMove,0,-1,0,R
Return
~*Down::
If moving=1
MouseMove,0,1,0,R
Return
MOVE:
PostMessage,0xA1,2,,,A
Return
MEASURE:
MouseGetPos,mx,my,mwin,mctrl
WinGetPos,wx2,wy2,,,ahk_id %gui2%
WinGetPos,wx1,wy1,,,ahk_id %gui1%
ToolTip,% "(" wx1 "," wy1 ") - (" wx2 "," wy2 ") = (" wx2+size-wx1 "," wy2+size-wy1 ") and " Round(Sqrt((wx2+size-wx1)**2+(wy2+size-wy1)**2)) " pixels long"
Return