- Offizieller Beitrag
Ich hatte gerade etwas Langeweile und da habe ich mal schnell ein Mausmeter geschrieben.
Die beiden Werte für die Breite eures Monitors müsst ihr noch anpassen.
Spoiler anzeigen
#NoTrayIcon
#include <Misc.au3>
#include <String.au3>
; Die zwei folgenden Werte werden für die DPI-Berechnung benötigt
Global $iMonPixel = 1920 ; Monitorbreite in Pixel (Wert anpassen!)
Global $iMonWidth = 517 ; Monitorbreite in mm (Wert anpassen!)
Global $sTitle = 'Mausmeter v1.0'
_Singleton($sTitle)
Global $a, $b, $msg, $sTime, $nSpeed, $iPixel = 0, $nMeter = 0
Global $nDPI = $iMonPixel / $iMonWidth * 25.4
Global $bShowTooltip = True
Global $aOld = MouseGetPos(), $aPos
Global $iTimer = TimerInit()
AdlibEnable('_RefreshDisplay', 500)
HotKeySet('!q', '_End') ; [ALT] + [q] zum beenden des Programms
HotKeySet('!s', '_HideShowTooltip') ; [ALT] + [s] zum anzeigen/verstecken des Tooltips
While 1
$aPos = MouseGetPos()
If $aPos[0] <> $aOld[0] Or $aPos[1] <> $aOld[1] Then
$a = Abs($aOld[0] - $aPos[0])
$b = Abs($aOld[1] - $aPos[1])
$iPixel += Int(Sqrt(($a ^ 2) + ($b ^ 2)))
$nMeter = StringFormat('%0.3f', $iPixel * (.0254 / $nDPI))
$sTime = _NewTicksToTime(TimerDiff($iTimer))
$nSpeed = StringFormat('%0.3f', $nMeter / (TimerDiff($iTimer) / 1000) * 3600 / 1000)
$aOld = $aPos
$msg = 'Laufzeit (hh:mm:ss) = ' & $sTime & @CR & @CR & 'Zurückgelegte Strecke:' & @CR & 'in Pixel: ' & _StringAddThousandsSep($iPixel, '.', ',')
$msg &= @CR & 'in Meter: ' & _StringAddThousandsSep($nMeter, '.', ',')
$msg &= @CR & @CR & 'Durchschnittl. Geschwindigkeit:' & @CR & 'in km/h: ' & _StringAddThousandsSep($nSpeed, '.', ',')
If $bShowTooltip Then ToolTip($msg, @DesktopWidth / 2 - 100, 0, $sTitle, 1, 1)
EndIf
Sleep(10)
WEnd
Func _End()
Exit
EndFunc ;==>_End
Func _HideShowTooltip()
$bShowTooltip = Not $bShowTooltip
If Not $bShowTooltip Then ToolTip('')
EndFunc
Func _RefreshDisplay()
$sTime = _NewTicksToTime(TimerDiff($iTimer))
$nSpeed = StringFormat('%0.3f', $nMeter / (TimerDiff($iTimer) / 1000) * 3600 / 1000)
$msg = 'Laufzeit (hh:mm:ss) = ' & $sTime & @CR & @CR & 'Zurückgelegte Strecke:' & @CR & 'in Pixel: ' & _StringAddThousandsSep($iPixel, '.', ',')
$msg &= @CR & 'in Meter: ' & _StringAddThousandsSep($nMeter, '.', ',')
$msg &= @CR & @CR & 'Durchschnittl. Geschwindigkeit:' & @CR & 'in km/h: ' & _StringAddThousandsSep($nSpeed, '.', ',')
If $bShowTooltip Then ToolTip($msg, @DesktopWidth / 2 - 100, 0, $sTitle, 1, 1)
EndFunc ;==>_RefreshDisplay
Func _NewTicksToTime($iTicks)
Local $iHours, $iMins, $iSecs = Int($iTicks / 1000)
$iHours = Int($iSecs / 3600)
$iSecs = Mod($iSecs, 3600)
$iMins = Int($iSecs / 60)
$iSecs = Mod($iSecs, 60)
Return StringFormat('%02i:%02i:%02i', $iHours, $iMins, $iSecs)
EndFunc ;==>_NewTicksToTime