Scorciatoia da tastiera per scambiare i pulsanti del mouse


22

Uso il mouse con entrambe le mani e mi piace spostarmi avanti e indietro per motivi di comfort. Tuttavia, questo è reso difficile dalla necessità di passare attraverso circa un miliardo di livelli di menu per scambiare i pulsanti ogni volta. C'è un modo semplice per creare un'unica scorciatoia da tastiera che cambierebbe il mio pulsante sinistro e destro del mouse?

Modifica: il mio sistema operativo è Windows 7.

Risposte:


19

Come menzionato blsub6, è possibile modificare un valore di registro (con un comando chiamato da un file batch):

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

o

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

Tuttavia, è necessario disconnettersi prima che abbia effetto .

La soluzione migliore è creare un piccolo .exe con C # per scambiare l'impostazione, come descritto nelle risposte a questa domanda .

Crea un file di testo che puoi chiamare swapmouse.cs, contenente questo:

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

E compilarlo swapmouse.execon questo comando:

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

Quindi fai doppio clic su un collegamento a quell'exe per scambiare i pulsanti del mouse. Ha effetto immediato.


3
Per avviare l'exe con una scorciatoia da tastiera :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

Ecco un'app per questo: http://code.google.com/p/mouseswap/

Se hai installato AutoIt , ecco lo script da eseguire in un file au3:

#NoTrayIcon

HotKeySet ( "# a", "MouseSwap")

Pulsanti $ globali

Mentre 1
   Il sonno (50)
wend

Func MouseSwap ()
   Se $ Buttons = 0 Quindi
      DllCall ("user32.dll", "int", "SwapMouseButton", "int", 1)
      $ Buttons = 1
      SplashTextOn ( "", "E8", 280.180, -1, -1,33, "Wingdings", 80)
      Sonno (600)
      SplashOff ()
   Altro
      DllCall ("user32.dll", "int", "SwapMouseButton", "int", 0)
      $ Pulsanti = 0
      SplashTextOn ( "", "8F", 280.180, -1, -1,33, "Wingdings", 80)
      Sonno (600)
      SplashOff ()
   Finisci se
EndFunc

4

Il miglior codice AHK:

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

Uso anche il mouse con entrambe le mani e ho anche Win7, questo codice funziona bene!


Questo è il migliore per i quicktypers.
Leonid Dworzanski,

3

Modalità tastiera per cambiare i pulsanti del mouse su Windows Vista (forse 7) e versioni successive:

  1. Tasto Windows
  2. digitare "mouse"
  3. Barra spaziatrice
  4. accedere

Sì, sono 8 i tasti premuti ma non è poi così male ... L'ho fatto un sacco


5. ALT + F4 per chiudere la finestra delle impostazioni del mouse
Przemyslaw Remin,

2

Questa è la versione di Autohotkey (modificata / basata su 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)
    }

Funziona bene con tutti i Windows (incluso Windows 10). Di solito lo associo a un tasto di scelta rapida come il tasto "F12" sulla mia tastiera (usando il tasto Autohot) e posso passare istantaneamente tra il tasto sinistro e destro del mouse premendo un tasto. Non è necessario confondere con il caricamento del pannello di controllo o l'impostazione del registro / riavvio.


0

Alcuni buoni suggerimenti di Autohotkey qui, ma questo scambia direttamente i pulsanti in Windows e dà una notifica popup.

È una copia dello script Autoit di mouseswap menzionato da 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

Un'alternativa più terser senza il popup:

Swapped := DllCall("SwapMouseButton", Int, 0)
if Swapped = 0
 DllCall("SwapMouseButton", Int, 1)

-1

Non so per una scorciatoia da tastiera, ma puoi creare due file reg che fanno ciò che è descritto qui . Basta fare clic e via.

Se vuoi davvero impazzire con esso, imposta uno script AutoHotkey che attiva i file reg


Non va bene, semplicemente cambiare la voce di registro non ha alcun effetto; i pulsanti rimangono invariati. È necessario riavviare o disconnettersi e riconnettersi affinché abbiano effetto.
Synetech,

-1

Mi piace evitare l'uso di file exe casuali quando possibile, ecco una soluzione AutoHotKey basata sulla soluzione per tastiera menzionata in precedenza.

Crea una scorciatoia in c: \ mouse.ink che apre le impostazioni del mouse.

Usa questo script AHK:

#a::
Run c:\mouse
sleep 250
send {Space}
Send {Enter}
return

Exe è solo uno script AutoIt compilato (simile a AutoHotkey). Invece di exe, potresti eseguire au3.
Mica,

-1

Come ha detto Mivk, questo è semplice e funziona come un fascino. Questo è ciò che ha menzionato Mivk

Crea un file di testo che puoi chiamare swapmouse.cs, contenente questo:

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

E compilarlo in swapmouse.exe con questo comando:

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

Ora puoi creare una cartella chiamata C: \ Programmi \ swapmouse e copiare swapmouse.exe nella cartella appena creata.

Ora crea un collegamento per questo file swapmouse.exe sul desktop.

Sotto la proprietà del file di scelta rapida, aggiungere un tasto di scelta rapida, in questo caso, ho usato "Ctrl + Alt + S" e applica.

Ora ogni volta che premi "Ctrl + Alt + S" il pulsante del mouse verrà scambiato.

Non vi è alcuna dipendenza dal mouse per modificare più il pulsante del mouse.


1
Benvenuto in Super User! Questo duplica un'altra risposta e non aggiunge nuovi contenuti. Per favore, non pubblicare una risposta a meno che tu non abbia effettivamente qualcosa di nuovo da contribuire.
DavidPostill

-1

Hai visto: https://www.eithermouse.com/

Questo è uno script di autohotkey compilato che ti consente di scambiare i pulsanti dal tuo vassoio di sistema e ti consente anche di avere due mouse contemporaneamente. Ho due topi che uso per alternare le mani sinistra e destra. E questo cambia automaticamente l'angolazione del cursore e il pulsante del mouse.


Ciò sarebbe più utile se tu avessi incluso uno script per farlo. Altrimenti è meglio come commento.
Synetech,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.