(etwas ruckelige) Mausbeschleunigung

  • Maus beliebig schneller machen!
    Könnte man noch sehr verbessern, mehr smooth usw.

    Spoiler anzeigen
    [autoit]

    $mach = InputBox("SpeedMouse", "Welche Geschwindigkeit? Von 1 bis "&@desktopwidth&"?"&@crlf&@crlf&"Beenden mit ESC!")
    HotKeySet("{ESC}", "exitt")
    While 1
    $pos = MouseGetPos()
    Sleep(1)
    $tx = MouseGetPos(0)
    $ty = MouseGetPos(1)
    If $tx < $pos[0] Then
    MouseMove($tx-$mach, $ty, 1)
    EndIf
    If $tx > $pos[0] Then
    MouseMove($tx+$mach, $ty, 1)
    EndIf
    If $ty < $pos[1] Then
    MouseMove($tx, $ty-$mach, 1)
    EndIf
    If $ty > $pos[1] Then
    MouseMove($tx, $ty+$mach, 1)
    EndIf
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func exitt()
    Exit
    EndFunc

    [/autoit]
  • Hi,
    so erziehlt es den erwünschten Effekt: Es ist zwar noch ruckelig aber schon weniger als in der Version vom Startpost

    Spoiler anzeigen
    [autoit]


    $speed = 75;InputBox("SpeedMouse", "Welche Geschwindigkeit? Von 1 bis " & @DesktopWidth & "?" & @CRLF & @CRLF & "Beenden mit ESC!")
    HotKeySet("{ESC}", "_exit")

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $pos = MouseGetPos()
    Global $LastXY[2] = [$pos[0], $pos[1]]
    Global $LockedXAxis = 0, $LockedYAxis = 0
    Global Const $Lock = 10

    [/autoit] [autoit][/autoit] [autoit]

    While Sleep(10)
    $pos = MouseGetPos()

    [/autoit] [autoit][/autoit] [autoit]

    If $LockedXAxis Then $LockedXAxis -= 1
    If $LockedYAxis Then $LockedYAxis -= 1

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If $pos[0] > $LastXY[0] And Not $LockedXAxis Then ; nach rechts
    MouseMove($pos[0] + $speed, $pos[1], 1)
    $LastXY[0] = $pos[0] + $speed
    $LockedYAxis = $Lock
    ContinueLoop
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $pos[1] > $LastXY[1] And Not $LockedYAxis Then ;nach unten
    MouseMove($pos[0], $pos[1] + $speed, 1)
    $LastXY[1] = $pos[1] + $speed
    $LockedXAxis = $Lock
    ContinueLoop
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $pos[0] < $LastXY[0] And Not $LockedXAxis Then ; nach links
    MouseMove($pos[0] - $speed, $pos[1], 1)
    $LastXY[0] = $pos[0] - $speed
    $LockedYAxis = $Lock
    ContinueLoop
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If $pos[1] < $LastXY[1] And Not $LockedYAxis Then ;nach oben
    MouseMove($pos[0], $pos[1] - $speed, 1)
    $LastXY[1] = $pos[1] - $speed
    $LockedXAxis = $Lock
    ContinueLoop
    EndIf
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _exit()
    Exit
    EndFunc ;==>_exit

    [/autoit]
  • in meiner Sig die Cursor-Maus ist zwar sinnfrei,
    aber um sich die Beschleunigung einer Maus abzuschauen sollte es reichen ;)

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Es geht aber um eine Live Mausbeschleunigung, mit der Tastur ist selbst mein Skript nicht ruckelig, aber es geht um die beschleúnigte flüssige Bewegung mit der Maus.

  • hab mal die dafür vorgesehene API-Funktion verwendet

    Spoiler anzeigen
    [autoit]

    ;mousespeed by andy
    ;http://msdn.microsoft.com/en-us/library/ms724947.aspx

    [/autoit] [autoit][/autoit] [autoit]

    $speed = 1 ;between 1(slow) and 20(fast)
    _mousespeed($speed)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _mousespeed($speed)
    ;if $speed<1 or $speed>20 then return seterror(1,0,0)
    $ret = SystemParametersInfo(113, 0, $speed, 0)
    EndFunc ;==>_mousespeed

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func SystemParametersInfo($uiAction, $uiParam, $pvParam, $fWinIni)
    ;by H2AU3 from Greenhorn
    Local $aRes = DllCall("user32.dll", "BOOL", "SystemParametersInfo", _
    "UINT", $uiAction, _
    "UINT", $uiParam, _
    "PTR", $pvParam, _
    "UINT", $fWinIni)
    If IsArray($aRes) Then Return SetError(0, 0, $aRes[0])
    Return SetError(1, 0, 0)

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc ;==>SystemParametersInfo

    [/autoit]

    Geschwindigkeit einstellbar von 1(langsam)-20(schnell)

    macht die Maus zwar nicht extrem viel schneller, aber passt zum Thema^^