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

26061
dsimcha

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

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

18

10 ответов на вопрос

15
mivk

Как упоминалось в 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 

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

The better solution is to make a tiny .exe with C# to swap the setting, as described in the answers to this question.

Make a text file which you can call swapmouse.cs, containing this:

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

And compile it to swapmouse.exe with this command:

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

Then you just double-click a shortcut to that exe to swap the mouse buttons. It takes effect immediately.

Чтобы запустить exe с помощью сочетания клавиш ** **: `1. Щелкните правой кнопкой мыши исполняемый файл и выберите «Создать ярлык». 2. Переместите ярлык на «C: \ ProgramData \ Microsoft \ Windows \ Start Menu» или на рабочий стол. 3. Щелкните правой кнопкой мыши ярлык, перейдите на вкладку «Сокращения» и выберите Сочетание клавиш Rad 7 лет назад 2
5
Mica

Here's an app for that: http://code.google.com/p/mouseswap/

If you have AutoIt installed, here's the script to run in an au3 file:

#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 
3
Kevin Driedger

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

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

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

5. ALT + F4, чтобы закрыть окно настроек мыши Przemyslaw Remin 6 лет назад 0
3
Lady3Millennium

The better AHK code:

Run, main.cpl Send, 

I also use mouse with both hands and also have Win7, this code works nice!

2
otter.pro

Это версия 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), и я могу мгновенно переключаться между левой и правой кнопкой мыши нажатием клавиши. Там нет необходимости гадить с загрузкой панели управления или настройки реестра / перезагрузки.

0
Iain

Несколько хороших советов по 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) 
-1
blsub6

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

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

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

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

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

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

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

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

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

#a:: Run c:\mouse sleep 250 send  Send  return 
Exe - это просто скомпилированный скрипт AutoIt (похожий на AutoHotkey). Вместо exe, вы можете запустить au3. Mica 10 лет назад 0
-1
Saad Faruque

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

Создайте текстовый файл, который вы можете назвать 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», кнопка мыши будет меняться.

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

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