Maus-Achsen vertauschen

  • Hi,
    ich wollte ein Script machen, mit dem man die Achsen der Maus verstauscht.
    Also wenn man die Maus nach rechts bewegt, bewegt sich der Cursor nach links usw.

    Spoiler anzeigen
    [autoit]

    $Timer=TimerInit()

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

    $LastMP=MouseGetPos()
    While 1
    $CurMP=MouseGetPos()
    If $LastMP[0]<>$CurMP[0] Or $LastMP[1]<>$CurMP[1] Then
    MouseMove($LastMP[0]-($CurMP[0]-$LastMP[0]),$LastMP[1]-($CurMP[1]-$LastMP[1]),1)
    $LastMP=MouseGetPos()
    EndIf
    If TimerDiff($Timer)>10000 Then Exit
    WEnd

    [/autoit]

    Eigentlich dachte ich es funktioniert nicht, aber durch Zufall stellte ich fest, dass mit mit dem Touchpad vom Notebook geht und nur mit der USB-Maus nicht.

    Warum funktioniert das nicht mit der Maus, obwohl es mit dem Touchpad geht?

    (P.S.: Noch klebt die Maus an den Rändern des Monitors fest, das werde ich aber bald beheben)

  • Servous, dein Problem liegt denke ich daran das du 2 Geräte hast die die Maus steuern und MousegetPos nur ein Gerät abfragen kann, in diesem
    Fall das erste dein Touchpad ;) > Deaktivieren und sollte dann laufen.

    Ich weiß leider nicht wie man genau vorgeben kann welches Gerät abgefragt werden soll..

    Gruß Marvin

  • Habe da auch mal was ausprobiert, ich weiß nicht ob es alles so richtig ist aber es funktioniert :P

    [autoit]


    HotKeySet ("a","a")

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

    Global $aX, $aY

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

    While 1
    $mPos = MouseGetPos ()
    If ($aX = "") Then $aX = $mPos[0]
    If ($aY = "") Then $aY = $mPos[1]

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

    $iSplit = StringSplit ("XY","",1)
    For $i = 1 To $iSplit[0]
    $iVar = Execute("$a" & $iSplit[$i])
    If ($mPos[$i-1] <> $iVar) Then
    If ($iVar > $mPos[$i-1]) Then
    $iVar = (($iVar - $mPos[$i-1])*2)+$mPos[$i-1]
    ElseIf ($iVar < $mPos[$i-1]) Then
    $iVar = $iVar - (($mPos[$i-1] - $iVar)*2)
    EndIf
    Switch $iSplit[$i]
    Case "X"
    $aX = $iVar
    Case "Y"
    $aY = $iVar
    EndSwitch
    MouseMove ($aX,$aY,1)
    EndIf
    Next
    WEnd

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

    Func a()
    Exit
    EndFunc

    [/autoit]


    Und ja ich weiß, man könnte $aX und $aY in ein Array stopfen :D