Atalho de teclado para trocar os botões do mouse

18

Eu uso meu mouse com as duas mãos e gosto de alternar entre os dois por motivos de conforto. No entanto, isso é dificultado pela necessidade de percorrer cerca de um zilhão de camadas de menus para trocar os botões de cada vez. Existe uma maneira fácil de criar um único atalho de teclado que trocaria o botão esquerdo e direito do mouse?

Editar: meu sistema operacional é o Windows 7.

    
por dsimcha 01.11.2010 / 19:12

10 respostas

15

Como o blsub6 mencionou, você pode alterar um valor de registro (com um comando chamado de um arquivo de lote):

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

No entanto, você precisa fazer logout antes de entrar em vigor .

A melhor solução é fazer um pequeno .exe com C # para trocar a configuração, conforme descrito nas respostas a esta questão .

Crie um arquivo de texto para o qual você pode chamar swapmouse.cs , contendo isto:

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 compile-o para swapmouse.exe com este comando:

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

Em seguida, basta clicar duas vezes em um atalho para esse exe para trocar os botões do mouse. Entra em vigor imediatamente.

    
por 21.08.2015 / 23:11
5

Veja um aplicativo para isso: link

Se você tiver AutoIt instalado, aqui está o script para executar em um arquivo au3:

#NoTrayIcon

HotKeySet("#a","MouseSwap")

Global $Buttons

While 1
   Sleep(50)
WEnd

Func MouseSwap()
   If $Buttons = 0 Then
      DllCall("user32.dll", "int", "SwapMouseButton", "int", 1)
      $Buttons = 1
      SplashTextOn("","E8",280,180,-1,-1,33,"Wingdings",80)
      Sleep(600)
      SplashOff()
   Else
      DllCall("user32.dll", "int", "SwapMouseButton", "int", 0)
      $Buttons = 0
      SplashTextOn("","8F",280,180,-1,-1,33,"Wingdings",80)
      Sleep(600)
      SplashOff()
   EndIf
EndFunc
    
por 05.01.2014 / 06:48
3

Modo de teclado para alternar botões do mouse no Windows Vista (talvez 7) e acima:

  1. Chave do Windows
  2. digite "mouse"
  3. Barra de espaço
  4. Insira

Sim, são 8 pressionamentos de tecla, mas não tão ruins ... Eu fiz um monte

    
por 24.07.2012 / 19:23
3

O melhor código AHK:

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

Eu também uso o mouse com as duas mãos e também tenho Win7, este código funciona bem!

    
por 09.12.2014 / 08:52
2

Esta é a versão Autohotkey (modificada / baseada no link ).

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

Isso funciona bem com todo o Windows (incluindo o Windows 10). Eu costumo mapeá-lo para uma tecla de atalho, como "F12" tecla no meu teclado (usando Autohotkey), e eu posso alternar entre o botão esquerdo e direito do mouse instantaneamente com o pressionar de uma tecla. Não há necessidade de se preocupar em carregar o painel de controle ou configurar o registro / reinicialização.

    
por 10.09.2018 / 22:10
0

Algumas sugestões boas do Autohotkey aqui, mas essa troca os botões diretamente no Windows e fornece uma notificação pop-up.

É uma cópia do script mouseswap Autoit mencionado por 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

Uma alternativa mais rápida sem o pop-up:

Swapped := DllCall("SwapMouseButton", Int, 0)
if Swapped = 0
 DllCall("SwapMouseButton", Int, 1)
    
por 16.01.2017 / 22:34
-1

Eu não sei sobre um atalho de teclado, mas você pode fazer dois arquivos reg que fazem o que é descrito aqui . Basta clicar e ir embora.

Se você realmente quiser ficar louco com isso, crie um script AutoHotkey que aciona os arquivos reg

    
por 01.11.2010 / 22:50
-1

Eu gosto de evitar o uso de arquivos exe aleatórios quando possível, aqui está uma solução AutoHotKey baseada na solução de teclado mencionada anteriormente.

Crie um atalho chamado c: \ mouse.ink que abre as configurações do mouse.

Use este script AHK:

#a::
Run c:\mouse
sleep 250
send {Space}
Send {Enter}
return
    
por 29.03.2014 / 00:06
-1

Como mivk mencionou, isso é direto e funciona como um encanto. Isto é o que mivk mencionou

Crie um arquivo de texto que você possa chamar de swapmouse.cs, contendo isto:

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 compile-o para swapmouse.exe com este comando:

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

Agora você pode criar uma pasta chamada C: \ Arquivos de Programas \ swapmouse e copiar o swapmouse.exe para a pasta recém-criada.

Agora crie um atalho para este arquivo swapmouse.exe na sua área de trabalho.

Sob a propriedade do arquivo de atalho, adicione uma tecla de atalho, neste caso, usei "Ctrl + Alt + S" e aplique.

Agora, toda vez que você pressionar "Ctrl + Alt + S", o botão do mouse será alternado.

Não há mais dependência do mouse para alterar o botão do mouse.

    
por 28.02.2016 / 12:43
-1

Você analisou: link

Este é um script autohotkey compilado que permite trocar botões da bandeja do sistema e também permite que você tenha dois mouses simultaneamente. Eu tenho dois ratos que eu uso para alternar entre as mãos esquerda e direita. E isso altera automaticamente o ângulo do cursor e o botão do mouse.

    
por 18.04.2013 / 11:54