Wie kann ich die Mausbewegung (X- und Y-Achse) systemweit umkehren? (Win 7 x 64)

27

Kurze Version

Ich suche nach einer Möglichkeit, die Bewegungen der X- und Y-Mausachse umzukehren. Auf dem Computer werden Windows 7, x64 und Logitech SetPoint 6.32 ausgeführt. Ich hätte gerne einen dauerhaften Fix auf Systemebene. B. eine Modifikation des Maustreibers oder eine Optimierung der Registrierung. Kennt jemand einen soliden Weg, dies zu implementieren, oder wie man die Registrierungswerte findet, um dies zu ändern? Ich werde mich mit der Aktivierung der Orientierungsfunktion in SetPoint 6.32 für Mäuse und Trackballs zufrieden geben.

Lange Version Die Leute scheinen nie zu verstehen, warum ich das will, und ich höre häufig "benutze einfach die Maus mit der rechten Seite nach oben!" Rat. Legasthenie ist nicht etwas, das geheilt werden kann, indem man "nur die Dinge richtig liest". Obwohl ich die Versuche, zu helfen, sehr schätze, hoffe ich, dass einige Hintergründe den Menschen das Verständnis erleichtern.

Ich habe einen Benutzer mit einer ungewöhnlichen Form von Legasthenie, für die Mausbewegungen rückwärts sind. Wenn sie ihren Cursor nach links bewegen möchte, bewegt sie die Maus nach rechts. Wenn der Cursor nach oben bewegt werden soll, bewegt sie die Maus nach unten. Früher hielt sie die Maus auf dem Kopf, was ein raffiniertes Klicken erschwert, die Ergonomie beeinträchtigt und Mehrtastenmäuse völlig unbrauchbar macht.

In früheren Zeiten enthielten die Maustreiber eine Orientierungsfunktion (normalerweise ein Heißluftballon, den Sie nach oben gezogen haben, um die Ausrichtung der Mausbewegung festzulegen), mit der die Beziehung zwischen Mausbewegung und Cursorbewegung festgelegt werden konnte. Vor einigen Jahren wurden die Maustreiber "verbessert" und diese Funktion ist seitdem auf Trackballs beschränkt.

Nachdem sie die Orientierungsfunktion verloren hatte, kehrte sie für einige Zeit zum Kopf-an-Kopf- Mäusen zurück , bis sie UberOptions fand , eine Optimierung für Logitech SetPoint , die alle Funktionen für alle Zeigegeräte aktivieren würde. Dies beinhaltete die Orientierungsfunktion. Und es gab viel Freude.

Jetzt ist ihre Maus gestorben und aktuelle Logitech-Mäuse benötigen eine neuere Version von SetPoint, für die UberOptions nicht aktualisiert wurde. Wir haben auch MAF-Mouse (der Entwickler gab an, dass die Version für 64-Bit-Windows USB-Mäuse noch nicht unterstützt) und Sakasa (während es funktioniert, deuten Kommentare im Web darauf hin, dass es zufällig und häufig zu Brüchen kommt. Es ist auch nur so ein laufendes Programm, also nicht systemweit.).

Ich habe einige sehr ausgefeilte Registry-Hacks gesehen. Ich habe zum Beispiel einen Hack benutzt, der die Codes der F1-F12-Tasten änderte, als die F-Lock-Taste erfunden wurde und standardmäßig meine Tastatur durcheinander brachte. Ich hoffe, es gibt eine Möglichkeit, X und Y in der Registrierung umzudrehen. oder eine andere, ähnliche Optimierung auf Systemebene.

Eine andere Lösung könnte darin bestehen, die Orientierungsfunktion für Mäuse und Trackballs wieder zu aktivieren. Es ist sehr frustrierend, dass die Treiber für Eingabegeräte die Funktionen enthalten, die wir dringend benötigen, um die Barrierefreiheit zu gewährleisten. Sie wurden jedoch deaktiviert, um die Fehlerfreiheit der Treiber zu erhöhen.

Scivitri
quelle
Meine Frage zu Elektronik für eine Hardware-orientierte Lösung: electronics.stackexchange.com/questions/29014/…
JYelton
1
Zu Ihrer Information, ich verwende die neueste Version von SetPoint (obwohl ich eine sehr alte Maus verwende, die ursprünglich mit der von UberOptions standardmäßig unterstützten Version von SetPoint geliefert wurde), und UberOptions funktioniert immer noch. Sie müssen lediglich den SetPoint-Ordner manuell in den in SetPoint 6 ( setpointP) verwendeten Ordner ändern . Sehen Sie hier . Ich persönlich würde mir wünschen, dass Logitech nur die UberOptions-Entwickler anheuert. SetPoint ist grausam und macht ihre Tastaturen / Mäuse ohne uberOptions nahezu unbrauchbar.
Majestätsbeleidigung
1
@ Lèsemajesté Ich stimme voll und ganz dem Wunsch zu, dass Logitech die UberOptions-Entwickler anheuert. Obwohl ihre alte Maus wie beschrieben funktioniert hat, wird die Ersatzmaus von UberOptions nicht unterstützt. Anscheinend gibt es einen ganz anderen SetPoint für Gaming-Mäuse, und sie ist ziemlich an die zusätzlichen Tasten gebunden, seit sie in der Lage ist, ihre Maus umzudrehen und sie zu erreichen.
Scivitri

Antworten:

18

Konnte nichts online finden und ich dachte, das sollte nicht zu schwer sein, also baute ich selbst eines. Erfordert Microsoft .NET Framework 4.0 , um zu laufen.

Polynomial's Mouse Inverter (Freeware, unter CC-BY-NC-SA Lizenz) - ( Alt Link )

Lass mich wissen, wie es für dich funktioniert :)


Tut mir leid, das hat so lange gedauert, aber hier ist der Code, der die Inversion tatsächlich ausführt:

internal class Inverter
{
    private Point pos = Cursor.Position;

    private bool invertX;

    private bool invertY;

    private bool running;

    private bool exit;

    public bool InvertX
    {
        get
        {
            return this.invertX;
        }
        set
        {
            this.invertX = value;
            if (this.InvertSettingsChanged != null)
            {
                this.InvertSettingsChanged(this, new EventArgs());
            }
        }
    }

    public bool InvertY
    {
        get
        {
            return this.invertY;
        }
        set
        {
            this.invertY = value;
            if (this.InvertSettingsChanged != null)
            {
                this.InvertSettingsChanged(this, new EventArgs());
            }
        }
    }

    public bool Running
    {
        get
        {
            return this.running;
        }
    }

    public Inverter(bool x, bool y)
    {
        this.invertX = x;
        this.invertY = y;
        this.pos = Cursor.Position;
    }

    private void MouseLoop()
    {
        Thread.CurrentThread.IsBackground = true;
        Thread.CurrentThread.Priority = ThreadPriority.Highest;
        while (!this.exit)
        {
            Point position = Cursor.Position;
            int right = (this.invertX ? this.pos.X - (position.X - this.pos.X) : position.X);
            if (this.invertX)
            {
                if (right < 2)
                {
                    right = 2;
                }
                if (right > Screen.FromPoint(position).Bounds.Right - 2)
                {
                    Rectangle bounds = Screen.FromPoint(position).Bounds;
                    right = bounds.Right - 2;
                }
            }
            int bottom = (this.invertY ? this.pos.Y - (position.Y - this.pos.Y) : position.Y);
            if (this.invertY)
            {
                if (bottom < 2)
                {
                    bottom = 2;
                }
                if (bottom > Screen.FromPoint(position).Bounds.Bottom - 2)
                {
                    Rectangle rectangle = Screen.FromPoint(position).Bounds;
                    bottom = rectangle.Bottom - 2;
                }
            }
            Cursor.Position = new Point(right, bottom);
            this.pos = Cursor.Position;
            Thread.Sleep(1);
        }
        this.exit = false;
    }

    public void Start()
    {
        this.pos = Cursor.Position;
        this.running = true;
        (new Thread(new ThreadStart(this.MouseLoop))).Start();
    }

    public void Stop()
    {
        this.running = false;
        this.exit = true;
    }

    public event EventHandler InvertSettingsChanged;
}

Ich habe das gerade mit Telerik JustDecompile aus der ausführbaren Datei gezogen, weil ich nicht den Originalcode habe. Sie können mit JD ein gesamtes VS-Projekt extrahieren, wenn Sie den vollständigen Anwendungscode benötigen.

Polynom
quelle
1
Vielen Dank! Das war weit mehr Aufwand als ich erwartet hatte! Wir werden es testen und sehen, wie es für sie funktioniert.
Scivitri
Kein Problem. Es war wirklich nicht so schwer zu erschaffen. Nachdem ich es ein wenig aufgeräumt und ein paar zusätzliche Funktionen hinzugefügt habe, werde ich es als Open Source veröffentlichen.
Polynom
Besteht die Möglichkeit, dass Sie den Code bald veröffentlichen? Oder können Sie es mir mailen? :)
Dirk
Ich habe gerade meine alte Festplatte durchgegraben, aber es scheint, als wäre dieser Code verloren gegangen :( Wenn ich Zeit habe, werde ich ihn von der ausführbaren Datei zurückentwickeln.
Polynom
1
@ remyabel Core Code hinzugefügt. Rest kann mit JustDecompile herausgezogen werden, wenn Sie es brauchen.
Polynom
10

Es gibt ein Programm namens SakasaMouse, das die Mausbewegungen umkehrt:

SakasaMouse ist eine Freeware zum Umkehren der Mauszeiger-Bewegungsrichtung auf der x-Achse und / oder der y-Achse.

Wenn Sie die Maus nach rechts bewegen, bewegt sich der Mauszeiger nach links.

Es funktioniert für jede Maus, einschließlich einer neu gekauften drahtlosen Maus. Das einzige Problem dabei ist, dass es ohne Vorwarnung zurückschalten kann, was etwas beunruhigend sein kann.

Fred Davis
quelle
Nachdem Sie sich wieder bei einem gesperrten Computer angemeldet haben, war der Mauszeiger unsichtbar. Es war etwas schwierig, in die Taskleiste zu navigieren, um die App zu schließen. Windows 8.1
user3071284
5

Ich bin der Autor von MAFMouse und es stimmt, dass die x64-Version noch nicht mit USB-Mäusen funktioniert (die 32-Bit-Version funktioniert!). Ich bin momentan zu beschäftigt, um daran zu arbeiten.

Mein Vorschlag ist also, eine PS2-Maus zu verwenden - dies funktioniert sehr gut und systemweit, auch für Spiele.

Ich habe viele Benutzer, die zuvor die um 180 Grad gedrehte Maus verwenden mussten (wobei das Kabel auf den Benutzer zeigt), und sie sind sehr zufrieden mit diesem Treiber. Interessanterweise sind alle außer einem Frauen :)

Die Installation in Windows 7 ist etwas kompliziert, bitte kontaktieren Sie mich für Details ...

Moritz
quelle
Wenn es nicht zu viel Mühe ist, würde es diese Antwort für andere Benutzer nützlicher machen, wenn Sie Anweisungen oder einen Link zu ihnen für die Installation unter Windows 7 posten könnten.
Lèse majesté
1
Da ich diese Beta-Version nicht zum öffentlichen Download anbiete, helfen Installationsanweisungen alleine nicht :) Es ist kompliziert, so dass das Erstellen dieser Anweisungen einige Arbeit ist und ich zuerst den Treiber beenden möchte. Wenn Sie mit den Anweisungen helfen möchten, sind Sie herzlich willkommen!
Moritz
1
@Moritz Danke, dass du zu SE gekommen bist und an der Diskussion teilgenommen hast! Leider glaube ich nicht, dass ihr Motherboard noch einen PS2-Port hat. Sie sind irgendwie veraltet. Sie ist auch ein bisschen an die knopflastigeren Mäuse gebunden, bei denen es sich in der Regel nur um USB handelt.
Scivitri
Wie können sie die Schaltflächen mit dieser Position anklicken?
Phuclv
Wichtiges Update: Ich bin der Autor von MAFMouse und die Beschränkung auf 32 Bit ist jetzt weg. x64 wird unterstützt und der Treiber ist jetzt signiert, sodass die Installation viel einfacher ist. Es ist auf Anfrage erhältlich (derzeit kein Download) und funktioniert sehr gut und systemweit, auch für Spiele (dh die gemeinsame Y-Achsen-Inversion). -Moritz
maf-soft
3

Es gibt ein interessantes Invert-Mouse-AHK-Skript:

BlockInput Mouse
SetMouseDelay -1

MouseGetPos x0, y0
SetTimer WatchMouse, 1
Return

WatchMouse:
   MouseGetPos x, y
   MouseMove 2*(x0-x), 2*(y0-y), 0, R
   MouseGetPos x0, y0
Return

!z::ExitApp

Ich habe es von hier bekommen: https://autohotkey.com/board/topic/17828-invert-mouse-axis/

In Ihrem Fall würde ich sogar die Möglichkeit einer schnellen HW-Änderung prüfen, um die Achse innerhalb der Maus zu invertieren.

Zelt
quelle
0

Auch ich habe meine Mausausrichtung umgekehrt und dies unter XP mit Intellipoint 4 und einer PS2-Maus gemacht.

Seit dem Kauf eines Win 7-PCs kann Intellipoint 4 nicht mehr darauf ausgeführt werden. Daher verwende ich Setpoint 4.8 jetzt mit einer Logitech-USB-Maus. Auf der Webseite von uberoptions finden Sie eine Liste der unterstützten Geräte. Es scheint, dass seit etwa 2009 keine Entwicklung für neue Mäuse durchgeführt wurde. Sie müssen also eine ältere Maus finden. Die M500-Maus ist noch frei verfügbar.

Guy Graham
quelle