Comment inverser le mouvement de la souris (axes X et Y) à l'échelle du système? (Gagnez 7 x64)


27

Version courte

Je cherche un moyen d'inverser les mouvements des axes X et Y de la souris. L'ordinateur exécute Windows 7, x64 et Logitech SetPoint 6.32. Je voudrais un correctif permanent au niveau du système; comme une modification du pilote de la souris ou une modification du registre. Quelqu'un connaît-il un moyen solide de l'implémenter ou comment trouver les valeurs de registre pour changer cela? Je me contenterai très volontiers de la façon d'activer la fonction d'orientation dans SetPoint 6.32 pour les souris et les trackballs.

Version longue Les gens semblent ne jamais comprendre pourquoi je voudrais cela, et j'entends souvent "utilisez simplement la souris côté droit vers le haut!" Conseil. La dyslexie n'est pas quelque chose qui peut être guérie en «lisant simplement les choses correctement». Bien que j'apprécie les tentatives d'aide, j'espère que certains antécédents pourront aider les gens à comprendre.

J'ai un utilisateur avec une forme inhabituelle de dyslexie, pour qui les mouvements de la souris sont en arrière. Si elle veut déplacer son curseur vers la gauche, elle déplacera la souris vers la droite. Si elle veut que le curseur se déplace vers le haut, elle déplacera la souris vers le bas. Elle avait l'habitude de tenir sa souris à l'envers, ce qui rend difficile un clic sophistiqué, est terrible pour l'ergonomie et rend les souris multi-boutons complètement inutiles.

Dans les temps anciens, les pilotes de souris comprenaient une fonction d'orientation (généralement une montgolfière que vous avez fait glisser vers le haut pour définir l'orientation du mouvement de la souris) qui pouvait être utilisée pour définir la relation entre le mouvement de la souris et le mouvement du curseur. Il y a plusieurs années, les pilotes de souris ont été "améliorés" et cette fonctionnalité a depuis été limitée aux trackballs.

Après avoir perdu la fonction d'orientation, elle est revenue un peu à la souris à l'envers, jusqu'à trouver UberOptions , un ajustement pour Logitech SetPoint , qui activerait toutes les fonctionnalités pour tous les périphériques de pointage. Cela comprenait la fonction d'orientation. Et il y avait beaucoup de joie.

Maintenant, sa souris est morte et les souris Logitech actuelles nécessitent une version plus récente de SetPoint pour laquelle UberOptions n'a pas été mis à jour. Nous avons également vu MAF-Mouse (le développeur a indiqué que la version pour Windows 64 bits ne prend pas encore en charge les souris USB) et Sakasa (alors que cela fonctionne, les commentaires sur le Web indiquent qu'il a tendance à se casser de manière aléatoire et souvent. C'est aussi juste un programme en cours d'exécution, donc pas à l'échelle du système.).

J'ai vu des hacks de registre très sophistiqués. Par exemple, j'avais l'habitude d'utiliser un hack qui changerait les codes créés par les touches F1-F12 lorsque la touche F-Lock a été inventée et par défaut pour visser mon clavier. J'espère qu'il existe un moyen de retourner X et Y dans le registre; ou une autre modification similaire au niveau du système.

Une autre solution pourrait être de réactiver la fonction d'orientation pour les souris, ainsi que les trackballs. Il est très frustrant que les pilotes de périphérique d'entrée incluent les fonctionnalités dont nous avons désespérément besoin pour un problème d'accessibilité, mais il a été désactivé au nom de rendre les pilotes plus idiots.


Ma question
liée

1
Pour info, j'exécute la dernière version de SetPoint (quoique en utilisant une très vieille souris fournie à l'origine avec la version de SetPoint qu'UberOptions supportait par défaut), et UberOptions fonctionne toujours. Il vous suffit de changer manuellement le dossier SetPoint en celui utilisé dans SetPoint 6 ( setpointP). Voyez ici . Personnellement, je souhaite que Logitech embauche déjà le (s) développeur (s) UberOptions. SetPoint est atroce et rend leurs claviers / souris presque inutilisables sans uberOptions.
Lèse majesté

1
@ Lèsemajesté Je suis tout à fait d'accord pour souhaiter que Logitech embauche le (s) développeur (s) UberOptions. Bien qu'elle ait fait fonctionner sa vieille souris comme vous le décrivez, la souris de remplacement n'est pas prise en charge par UberOptions. Apparemment, il y a un SetPoint complètement différent pour les souris de jeu, et elle est devenue très attachée à tous les boutons supplémentaires depuis qu'elle est capable de retourner sa souris et de les atteindre.
Scivitri

Réponses:


18

Je n'ai rien trouvé en ligne, et je me suis dit que cela ne devrait pas être trop difficile à faire, alors j'ai continué et j'en ai construit un moi-même. Nécessite Microsoft .NET Framework 4.0 pour fonctionner.

Inverseur de souris de Polynomial (logiciel gratuit, sous licence CC-BY-NC-SA) - ( Alt Link )

Permettez-moi de savoir comment cela fonctionne pour vous :)


Désolé, cela a pris si longtemps, mais voici le code qui fait réellement l'inversion:

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;
}

Je viens de retirer ceci de l'exécutable avec Telerik JustDecompile, car je n'ai pas le code d'origine. Vous pouvez extraire un projet VS entier avec JD si vous avez besoin du code d'application complet.


1
Merci! C'était bien plus d'efforts que je ne le pensais! Nous allons le tester et voir comment cela fonctionne pour elle.
Scivitri

Aucun problème. Ce n'était vraiment pas si difficile à créer. Après l'avoir nettoyé un peu et ajouté quelques fonctionnalités supplémentaires, je le publierai en open source.
Polynôme

Y a-t-il une chance que vous libériez le code de sitôt? Ou pouvez-vous me l'envoyer? :)
Dirk

Je viens de creuser dans mon ancien disque dur, mais il semble que ce code ait été perdu :( Si j'ai le temps, je le rétroconcevoir à partir de l'exécutable.
Polynomial

1
@remyabel Core code ajouté. Le repos peut être retiré avec JustDecompile si vous en avez besoin.
Polynôme

10

Il existe un programme appelé SakasaMouse qui inverse les mouvements de la souris:

SakasaMouse est un logiciel gratuit pour inverser la direction du mouvement du curseur de la souris sur l'axe x et / ou l'axe y.

Si vous déplacez la souris vers la droite, le pointeur de la souris se déplace vers la gauche.

Cela fonctionne pour chaque souris, y compris une nouvelle sans fil que vous venez d'acheter. Le seul problème, c'est qu'il est susceptible de revenir en arrière sans avertissement, ce qui peut être un peu déconcertant.


Une fois reconnecté à un ordinateur verrouillé, le curseur de la souris était invisible. Il était un peu difficile de naviguer dans la barre des tâches pour fermer l'application. Windows 8.1
user3071284

5

Je suis l'auteur de MAFMouse et c'est vrai que la version x64 ne fonctionne pas encore avec les souris USB (la version 32 bits le fait!). Je suis actuellement trop occupé pour y travailler.

Donc, ma suggestion est d'utiliser une souris PS2 - cela fonctionne très bien et à l'échelle du système, même pour les jeux.

J'ai de nombreux utilisateurs qui ont dû utiliser la souris tournée de 180 degrés auparavant (avec le câble pointant vers l'utilisateur) et ils sont très satisfaits de ce pilote. Fait intéressant, toutes sauf une sont des femmes :)

L'installation sous Windows 7 est un peu compliquée, veuillez me contacter pour plus de détails ...


Si ce n'est pas trop de problème, cela rendrait cette réponse plus utile pour les autres utilisateurs si vous pouviez poster des instructions ou un lien vers eux pour l'installer sur Windows 7.
Lèse majesté

1
Étant donné que je ne propose pas cette version bêta au téléchargement public, les instructions d'installation seules ne seront pas utiles :) C'est compliqué, donc la création de ces instructions sera un peu de travail et je veux d'abord terminer le pilote. Si vous voulez aider avec les instructions, vous êtes les bienvenus!
Moritz

1
@Moritz Merci d'être venu à SE et d'avoir rejoint la discussion! Malheureusement, je ne pense plus que sa carte mère ait même un port PS2. Ils sont un peu obsolètes. Elle est également quelque peu attachée aux souris plus boutons, qui ont tendance à être uniquement USB.
Scivitri

comment peuvent-ils cliquer sur les boutons avec cette position?
phuclv

Mise à jour importante: je suis l'auteur de MAFMouse et la restriction à 32 bits a maintenant disparu. x64 est pris en charge et le pilote est signé maintenant, donc l'installation est beaucoup plus facile. Il est disponible sur demande (actuellement sans téléchargement) et fonctionne très bien et à l'échelle du système, même pour les jeux (c'est-à-dire l'inversion commune de l'axe Y). -Moritz
maf-soft

3

Il existe un script AHK inversé intéressant pour la souris:

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

Je l'ai eu d'ici: https://autohotkey.com/board/topic/17828-invert-mouse-axis/

Dans votre cas, je vérifierais même la possibilité de faire quelques modifications HW rapides pour inverser l'axe à l'intérieur de la souris.


0

Moi aussi, j'ai inversé l'orientation de ma souris et je le faisais sur XP avec Intellipoint 4 et une souris PS2.

Depuis l'achat d'un PC Win 7, Intellipoint 4 ne fonctionnera pas dessus, donc j'utilise maintenant Setpoint 4.8 avec une souris USB Logitech. Sur la page Web uberoptions, il vous donne une liste des appareils pris en charge. Il semble qu'aucun développement n'ait été fait depuis 2009 environ pour les nouvelles souris, vous devez donc trouver une souris plus ancienne. La souris M500 est toujours disponible gratuitement.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.