Сочетание клавиш для переключения кнопок мыши

22

Я использую свою мышь обеими руками и люблю переключаться назад и вперед из соображений комфорта. Тем не менее, это затрудняется тем, что приходится каждый раз проходить около миллиона слоев меню, чтобы менять кнопки. Есть ли простой способ создать одну комбинацию клавиш, которая поменяла бы левую и правую кнопки мыши?

Изменить: Моя ОС Windows 7.

dsimcha
источник

Ответы:

19

Как упоминалось в blsub6, вы можете изменить значение реестра (с помощью команды, вызываемой из командного файла):

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

или

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

Однако вам нужно выйти из системы, прежде чем она вступит в силу .

Лучшее решение , чтобы сделать маленький .exe с C # , чтобы поменять настройки, как описано в ответах на этот вопрос .

Создайте текстовый файл, который вы можете вызвать swapmouse.cs, содержащий это:

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

И скомпилируйте это swapmouse.exeс этой командой:

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

Затем вы просто дважды щелкаете по ярлыку к этому файлу, чтобы поменять местами кнопки мыши. Это вступает в силу немедленно.

mivk
источник
3
Чтобы запустить exe с помощью сочетания клавиш: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
Рад
5

Вот приложение для этого: http://code.google.com/p/mouseswap/

Если у вас установлен AutoIt , вот скрипт для запуска в файле au3:

#NoTrayIcon

HotKeySet ( "# а", "MouseSwap")

Глобальные кнопки $

Пока 1
   Sleep (50)
венед

Func MouseSwap ()
   Если $ Buttons = 0, то
      DllCall ("user32.dll", "int", "SwapMouseButton", "int", 1)
      $ Buttons = 1
      SplashTextOn ( "", "Е8", 280180, -1, -1,33, "Wingdings", 80)
      Sleep (600)
      SplashOff ()
   еще
      DllCall ("user32.dll", "int", "SwapMouseButton", "int", 0)
      $ Buttons = 0
      SplashTextOn ( "", "8F", 280180, -1, -1,33, "Wingdings", 80)
      Sleep (600)
      SplashOff ()
   EndIf
EndFunc
слюда
источник
4

Чем лучше код AHK:

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

Я также использую мышь обеими руками, а также имею Win7, этот код работает хорошо!

Lady3Millennium
источник
Это лучшее для QuickTypers.
Леонид Дворжанский
3

Клавиатурный способ переключения кнопок мыши в Windows Vista (возможно, 7) и выше:

  1. Ключ Windows
  2. типа "мышь"
  3. Пробел
  4. Войти

Да, это 8 нажатий клавиш, но не так уж плохо ... Я сделал это кучу

Кевин Дридгер
источник
5. ALT + F4, чтобы закрыть окно настроек мыши
Przemyslaw Remin
2

Это версия Autohotkey (изменена / основана на 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)
    }

Это прекрасно работает со всеми Windows (включая Windows 10). Я обычно сопоставляю это с горячей клавишей, такой как клавиша «F12» на моей клавиатуре (используя AutoHock), и я могу мгновенно переключаться между левой и правой кнопкой мыши нажатием клавиши. Там нет необходимости гадить с загрузкой панели управления или настройки реестра / перезагрузки.

otter.pro
источник
0

Несколько хороших советов по AutoHotkey здесь, но этот меняет местами кнопки в Windows и выдает всплывающее уведомление.

Это копия скрипта mouseswap Autoit, упомянутого слюдой.

#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

Более краткая альтернатива без всплывающего окна:

Swapped := DllCall("SwapMouseButton", Int, 0)
if Swapped = 0
 DllCall("SwapMouseButton", Int, 1)
Iain
источник
-1

Я не знаю о сочетаниях клавиш, но вы можете сделать два reg-файла, которые делают то, что описано здесь . Просто нажмите и прочь.

Если вы действительно хотите сойти с ума, установите скрипт AutoHotkey, который запускает reg-файлы

blsub6
источник
Это не хорошо, просто изменение записи в реестре не имеет никакого эффекта; кнопки остаются без изменений. Вам нужно будет перезагрузиться или выйти и снова войти, чтобы они вступили в силу.
Synetech
-1

Мне нравится избегать использования случайных exe-файлов, когда это возможно, вот решение AutoHotKey, основанное на ранее упомянутом решении для клавиатуры.

Сделайте ярлык с именем c: \ mouse.ink, чтобы открыть настройки мыши.

Используйте этот скрипт AHK:

#a::
Run c:\mouse
sleep 250
send {Space}
Send {Enter}
return
Билл
источник
Exe - это просто скомпилированный скрипт AutoIt (похожий на AutoHotkey). Вместо exe, вы можете запустить au3.
Слюда
-1

Как упомянуто Мивк, это прямо вперед и работает как шарм. Это то, что упоминал Мивк

Создайте текстовый файл, который вы можете назвать swapmouse.cs, содержащий это:

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

И скомпилируйте его в swapmouse.exe с помощью этой команды:

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

Теперь вы можете создать папку с именем C: \ Program Files \ swapmouse и скопировать swapmouse.exe во вновь созданную папку.

Теперь создайте ярлык для этого файла swapmouse.exe на рабочем столе.

Под свойством файла ярлыка добавьте комбинацию клавиш, в этом случае я использовал «Ctrl + Alt + S» и применил.

Теперь каждый раз, когда вы нажимаете «Ctrl + Alt + S», кнопка мыши будет меняться.

Нет никакой зависимости от мыши, чтобы изменить кнопку мыши больше.

Саад Фарук
источник
1
Добро пожаловать в Супер пользователя! Это дублирует другой ответ и не добавляет новый контент. Пожалуйста, не публикуйте ответ, если у вас нет чего-то нового.
DavidPostill
-1

Вы смотрели на: https://www.eithermouse.com/

Это скомпилированный скрипт autohotkey, который позволяет вам менять кнопки на панели задач sys, а также позволяет одновременно использовать две мыши. У меня есть две мыши, которые я чередую между левой и правой руками. И это автоматически меняет угол наклона курсора и кнопки мыши.

Jetpilot
источник
Это было бы более полезно, если бы вы включили скрипт для этого. В противном случае это лучше в качестве комментария.
Synetech