Raccourci clavier pour permuter les boutons de la souris

22

J'utilise ma souris à deux mains et j'aime alterner pour des raisons de confort. Cependant, cela est rendu difficile en ayant besoin de parcourir environ un million de couches de menus pour échanger les boutons à chaque fois. Existe-t-il un moyen simple de créer un raccourci clavier unique qui permuterait le bouton gauche et droit de la souris?

Edit: Mon OS est Windows 7.

dsimcha
la source

Réponses:

19

Comme l'a mentionné blsub6, vous pouvez modifier une valeur de registre (avec une commande appelée à partir d'un fichier de commandes):

REG ADD "HKCU\Control Panel\Mouse" /t REG_SZ /v SwapMouseButtons /d 1 /f

ou

REG ADD "HKCU\Control Panel\Mouse" /t REG_SZ /v SwapMouseButtons /d 0 /f

Cependant, vous devez vous déconnecter avant qu'il ne prenne effet .

La meilleure solution consiste à créer un petit fichier .exe avec C # pour échanger le paramètre, comme décrit dans les réponses à cette question .

Créez un fichier texte que vous pouvez appeler swapmouse.cs, contenant ceci:

using System.Runtime.InteropServices;
using System;

class SwapMouse
{
    [DllImport("user32.dll")]
    public static extern Int32 SwapMouseButton(Int32 bSwap);

    static void Main(string[] args)
    {
        int rightButtonIsAlreadyPrimary = SwapMouseButton(1);
        if (rightButtonIsAlreadyPrimary != 0)
        {
            SwapMouseButton(0);  // Make the left mousebutton primary
        }
    }
}

Et compilez-le swapmouse.exeavec cette commande:

"%SystemRoot%\Microsoft.NET\Framework64\v3.5\csc" swapmouse.cs

Ensuite, il vous suffit de double-cliquer sur un raccourci vers cet exe pour échanger les boutons de la souris. Il prend effet immédiatement.

mivk
la source
3
Pour démarrer l'exe par un raccourci clavier :1. Right-click on the exe and select "Create Shortcut" 2. Move the shortcut to "C:\ProgramData\Microsoft\Windows\Start Menu" or the desktop 3. Right click on the shortcut, go to the Shorcut tab and select a shortcut key
Rad
5

Voici une application pour cela: http://code.google.com/p/mouseswap/

Si vous avez installé AutoIt , voici le script à exécuter dans un fichier au3:

#NoTrayIcon

HotKeySet ("# a", "MouseSwap")

Boutons Global $

Alors que 1
   Sommeil (50)
WEnd

Func MouseSwap ()
   Si $ Buttons = 0 Alors
      DllCall ("user32.dll", "int", "SwapMouseButton", "int", 1)
      Boutons $ = 1
      SplashTextOn ("", "E8", 280,180, -1, -1,33, "Wingdings", 80)
      Sommeil (600)
      SplashOff ()
   Autre
      DllCall ("user32.dll", "int", "SwapMouseButton", "int", 0)
      Boutons $ = 0
      SplashTextOn ("", "8F", 280,180, -1, -1,33, "Wingdings", 80)
      Sommeil (600)
      SplashOff ()
   Fin si
EndFunc
Mica
la source
4

Le meilleur code AHK:

Run, main.cpl
Send, {Space}{Enter}

J'utilise également la souris à deux mains et j'ai également Win7, ce code fonctionne bien!

Lady3Millennium
la source
C'est le meilleur pour les quicktypers.
Leonid Dworzanski
3

Façon clavier de basculer les boutons de la souris sur Windows Vista (peut-être 7) et au-dessus:

  1. Clé Windows
  2. tapez "souris"
  3. Barre d'espace
  4. Entrer

Oui, c'est 8 touches mais pas trop mal ... je l'ai fait un tas

Kevin Driedger
la source
5. ALT + F4 pour fermer la fenêtre des paramètres de la souris
Przemyslaw Remin
2

Il s'agit de la version Autohotkey (modifiée / basée sur https://github.com/jNizM/AHK_DllCall_WinAPI/blob/master/src/Mouse%20Input%20Functions/SwapMouseButton.ahk ).

; autohotkey code - mapped to F12
F12::
    buttonState := DllCall("user32.dll\SwapMouseButton", "UInt", 1)
    if buttonState <> 0
    {
        buttonState := DllCall("user32.dll\SwapMouseButton", "UInt", 0)
    }

Cela fonctionne bien avec tous les Windows (y compris Windows 10). Je le mappe généralement à un raccourci clavier tel que la touche "F12" de mon clavier (à l'aide de la touche automatique), et je peux basculer entre le bouton gauche et le bouton droit de la souris instantanément en appuyant sur une touche. Il n'est pas nécessaire de se débarrasser du chargement du panneau de configuration ou de la configuration du registre / redémarrage.

otter.pro
la source
0

Quelques bonnes suggestions Autohotkey ici, mais celle-ci permute directement les boutons dans Windows et donne une notification contextuelle.

Il s'agit d'une copie du script mouseswap Autoit mentionné par mica.

#a::
if button = 0
    {
    DllCall("SwapMouseButton", "int", 1)
    button = 1
    SplashTextOn, 120, 30, Mouse Button, Left handed
    Sleep 600
    SplashTextOff
    }
else
    {
    DllCall("SwapMouseButton", "int", 0)
    button = 0
    SplashTextOn, 120, 30, Mouse Button, Right handed
    Sleep 600
    SplashTextOff
    }
return

Une alternative terser sans le popup:

Swapped := DllCall("SwapMouseButton", Int, 0)
if Swapped = 0
 DllCall("SwapMouseButton", Int, 1)
Iain
la source
-1

Je ne sais pas à propos d'un raccourci clavier mais vous pouvez créer deux fichiers reg qui font ce qui est décrit ici . Il suffit de cliquer et c'est parti.

Si vous voulez vraiment devenir fou avec ça, configurez un script AutoHotkey qui déclenche les fichiers reg

blsub6
la source
Ce n'est pas bon, simplement changer l'entrée de registre n'a aucun effet; les boutons restent inchangés. Vous devrez redémarrer ou vous déconnecter et vous reconnecter pour qu'ils prennent effet.
Synetech
-1

J'aime éviter d'utiliser des fichiers exe aléatoires lorsque cela est possible, voici une solution AutoHotKey basée sur la solution de clavier mentionnée précédemment.

Créez un raccourci à appelé c: \ mouse.ink qui ouvre les paramètres de la souris.

Utilisez ce script AHK:

#a::
Run c:\mouse
sleep 250
send {Space}
Send {Enter}
return
Facture
la source
L'exe est juste un script AutoIt compilé (similaire à AutoHotkey). Au lieu de l'exe, vous pouvez exécuter au3.
Mica
-1

Comme Mivk l'a mentionné, c'est simple et fonctionne comme un charme. C'est ce que Mivk a mentionné

Créez un fichier texte que vous pouvez appeler swapmouse.cs, contenant ceci:

using System.Runtime.InteropServices;
using System;

class SwapMouse
{
    [DllImport("user32.dll")]
    public static extern Int32 SwapMouseButton(Int32 bSwap);

    static void Main(string[] args)
    {
        int rightButtonIsAlreadyPrimary = SwapMouseButton(1);
        if (rightButtonIsAlreadyPrimary != 0)
        {
            SwapMouseButton(0);  // Make the left mousebutton primary
        }
    }
}

Et compilez-le dans swapmouse.exe avec cette commande:

"%SystemRoot%\Microsoft.NET\Framework64\v3.5\csc" swapmouse.cs

Vous pouvez maintenant créer un dossier appelé C: \ Program Files \ swapmouse et copier le swapmouse.exe dans le dossier nouvellement créé.

Créez maintenant un raccourci pour ce fichier swapmouse.exe sur votre bureau.

Sous la propriété du fichier de raccourci, ajoutez une touche de raccourci, dans ce cas, j'ai utilisé "Ctrl + Alt + S" et appliquer.

Maintenant, chaque fois que vous appuyez sur "Ctrl + Alt + S", le bouton de la souris est inversé.

Il n'y a plus de dépendance à la souris pour changer le bouton de la souris.

Saad Faruque
la source
1
Bienvenue sur Super User! Cela duplique une autre réponse et n'ajoute aucun nouveau contenu. Veuillez ne pas poster de réponse à moins que vous ayez réellement quelque chose de nouveau à apporter.
DavidPostill
-1

Avez-vous regardé: https://www.eithermouse.com/

Il s'agit d'un script autohotkey compilé qui vous permet d'échanger les boutons de votre barre d'état système, et vous permet également d'avoir deux souris avec simultanément. J'ai deux souris que j'utilise pour alterner entre les mains gauche et droite. Et cela change automatiquement l'angle du curseur et du bouton de la souris.

Pilote de jet
la source
Ce serait plus utile si vous aviez inclus un script pour le faire. Sinon, c'est mieux comme commentaire.
Synetech