Tastaturkürzel zum Wechseln der Maustasten

22

Ich benutze meine Maus mit beiden Händen und schalte aus Komfortgründen gerne hin und her. Dies wird jedoch dadurch erschwert, dass jedes Mal zig Millionen Menüebenen durchlaufen werden müssen, um die Tasten zu tauschen. Gibt es eine einfache Möglichkeit, eine einzelne Tastenkombination zu erstellen, mit der die linke und rechte Maustaste vertauscht werden können?

Bearbeiten: Mein Betriebssystem ist Windows 7.

dsimcha
quelle

Antworten:

19

Wie in blsub6 erwähnt, können Sie einen Registrierungswert ändern (mit einem Befehl, der aus einer Batch-Datei aufgerufen wird):

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

oder

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

Sie müssen sich jedoch abmelden, bevor dies wirksam wird .

Die bessere Lösung besteht darin, eine winzige EXE-Datei mit C # zu erstellen, um die Einstellung zu tauschen, wie in den Antworten auf diese Frage beschrieben .

Erstellen Sie eine Textdatei, die Sie aufrufen können und die Folgendes swapmouse.csenthält:

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

Und kompiliere es swapmouse.exemit diesem Befehl:

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

Dann doppelklicken Sie einfach auf eine Verknüpfung zu dieser Exe, um die Maustasten zu tauschen. Es wird sofort wirksam.

mivk
quelle
3
So starten Sie die EXE durch eine Tastaturkürzel: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

Hier ist eine App dafür: http://code.google.com/p/mouseswap/

Wenn Sie AutoIt installiert haben, ist hier das Skript, das in einer au3-Datei ausgeführt werden soll:

#NoTrayIcon

HotKeySet ("# a", "MouseSwap")

Globale $ -Tasten

Während 1
   Schlaf (50)
Ende

Func MouseSwap ()
   Wenn $ Buttons = 0, dann
      DllCall ("user32.dll", "int", "SwapMouseButton", "int", 1)
      $ Buttons = 1
      SplashTextOn ("", "E8", 280,180, -1, -1,33, "Wingdings", 80)
      Schlaf (600)
      SplashOff ()
   Sonst
      DllCall ("user32.dll", "int", "SwapMouseButton", "int", 0)
      $ Buttons = 0
      SplashTextOn ("", "8F", 280,180, -1, -1,33, "Wingdings", 80)
      Schlaf (600)
      SplashOff ()
   EndIf
EndFunc
Glimmer
quelle
4

Der bessere AHK-Code:

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

Ich benutze auch die Maus mit beiden Händen und habe auch Win7, dieser Code funktioniert gut!

Lady3Millennium
quelle
Dies ist das Beste für Quicktypers.
Leonid Dworzanski
3

Tastaturmethode zum Wechseln der Maustasten unter Windows Vista (möglicherweise 7) und höher:

  1. Windows-Taste
  2. Typ "Maus"
  3. Leertaste
  4. Eingeben

Ja, es sind 8 Tastendrücke, aber nicht schlecht ... Ich habe es ein bisschen gemacht

Kevin Driedger
quelle
5. ALT + F4, um das Fenster mit den Mauseinstellungen zu schließen
Przemyslaw Remin
2

Dies ist die Autohotkey-Version (geändert / basierend auf 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)
    }

Dies funktioniert gut mit allen Windows (einschließlich Windows 10). Normalerweise ordne ich es einem Hotkey wie "F12" auf meiner Tastatur zu (mit Autohotkey), und ich kann durch Drücken einer Taste sofort zwischen linker und rechter Maustaste umschalten. Es gibt keine Notwendigkeit, mit dem Laden der Systemsteuerung oder dem Einstellen der Registrierung / Neustart Mist zu machen.

otter.pro
quelle
0

Ein paar gute Autohotkey-Vorschläge hier, aber dieser tauscht die Schaltflächen in Windows direkt aus und gibt eine Popup-Benachrichtigung aus.

Es ist eine Kopie des von mica erwähnten mouseswap Autoit-Skripts.

#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

Eine knappere Alternative ohne Popup:

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

Ich weiß nichts über eine Tastenkombination, aber Sie können zwei Reg-Dateien erstellen, die das tun, was hier beschrieben wird . Einfach klicken und los geht's.

Wenn Sie wirklich verrückt werden möchten, richten Sie ein AutoHotkey- Skript ein, das die Reg-Dateien auslöst

bl6
quelle
Das ist nicht gut. Das einfache Ändern des Registrierungseintrags hat keine Auswirkungen. Die Tasten bleiben unverändert. Sie müssten neu starten oder sich abmelden und wieder anmelden, damit sie wirksam werden.
Synetech
-1

Ich möchte die Verwendung von zufälligen exe-Dateien nach Möglichkeit vermeiden. Hier ist eine AutoHotKey-Lösung, die auf der zuvor erwähnten Tastaturlösung basiert.

Erstellen Sie eine Verknüpfung mit dem Namen c: \ mouse.ink, die die Mauseinstellungen öffnet.

Verwenden Sie dieses AHK-Skript:

#a::
Run c:\mouse
sleep 250
send {Space}
Send {Enter}
return
Rechnung
quelle
Die exe ist nur ein kompiliertes AutoIt-Skript (ähnlich wie AutoHotkey). Anstelle der exe könnten Sie die au3 ausführen.
Mica
-1

Wie mivk erwähnt hat, ist dies unkompliziert und funktioniert wie ein Zauber. Dies ist, was Mivk erwähnt

Erstellen Sie eine Textdatei, die Sie swapmouse.cs aufrufen können und die Folgendes enthält:

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

Und kompiliere es mit diesem Befehl zu swapmouse.exe:

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

Jetzt können Sie einen Ordner mit dem Namen C: \ Programme \ swapmouse erstellen und die Datei swapmouse.exe in den neu erstellten Ordner kopieren.

Erstellen Sie nun eine Verknüpfung für diese Datei "swapmouse.exe" auf Ihrem Desktop.

Fügen Sie unter der Eigenschaft der Verknüpfungsdatei eine Tastenkombination hinzu. In diesem Fall habe ich "Strg + Alt + S" verwendet und angewendet.

Jetzt wird bei jedem Drücken von "Strg + Alt + S" die Maustaste getauscht.

Es besteht keine Abhängigkeit mehr von der Maus, um die Maustaste zu ändern.

Saad Faruque
quelle
1
Willkommen bei Super User! Dies dupliziert eine andere Antwort und fügt keinen neuen Inhalt hinzu. Bitte posten Sie keine Antwort, es sei denn, Sie haben tatsächlich etwas Neues beizutragen.
DavidPostill
-1

Haben Sie sich Folgendes angesehen: https://www.eithermouse.com/

Dies ist ein kompiliertes Autohotkey-Skript, mit dem Sie Schaltflächen aus Ihrem Sys-Tray austauschen und gleichzeitig zwei Mäuse haben können. Ich habe zwei Mäuse, mit denen ich zwischen linker und rechter Hand wechsle. Und dies ändert automatisch den Winkel des Cursors und der Maustaste.

Jet-Pilot
quelle
Dies wäre hilfreicher, wenn Sie dazu ein Skript eingefügt hätten. Ansonsten ist das als Kommentar besser.
Synetech