Вопрос: Переопределение драйверов мыши для включения компоновки кнопок слева


Что я хочу делать (короткая часть сообщения)

Я хочу переключить левую и правую кнопку мыши на уровне драйвера.

То есть, я хочу либо изменить, либо переопределить драйвер мыши, чтобы переключать левую и правую кнопки мыши в операционной системе Windows. (Решение должно предпочтительно работать с Windows 7 и выше).

Почему на Земле я хочу это сделать (длинная часть сообщения)

терминология

Для краткости и ясности я буду использовать следующие жирный шрифт сроки:

  • оставил - левая физическая кнопка мыши
  • правильно - правая физическая кнопка мыши
  • щелчок - сигнал, который обычно отправляется при нажатии оставил, используемый, например, выберите файл, нажмите кнопку, перетащите окно
  • меню - сигнал, который обычно отправляется при нажатии правильно, используемый, например, открыть контекстное меню
  • Win-своп - Панель управления Windows> Настройка мыши, которая оставил Огонь меню а также правильно Огонь щелчок,

Проблема

Я левша. Я использую мышь левой рукой. Как нормальный человек, я запускаю щелчок с моим указательным пальцем и меню с моим средним пальцем - что означает, что я использую правильно в щелчок а также оставил в меню, Как обычно, Win-своп было бы достаточно для этого - и оно действительно работает для браузеров, офисного программного обеспечения, редакторов СМИ, программных IDE и т. п.

К сожалению, я тоже геймер. Из-за особенность в том, как DirectX обрабатывает кнопки мыши, довольно много игр - независимо от того, являются ли они высокобюджетными версиями или бесплатными программами для одного разработчика - игнорировать Win-своп и (AFAIK) считывают сигналы кнопок с уровня драйвера.

Обычно это означает, что (если вы не можете перекрыть кнопки мыши внутри игры), вся игра в основном неиграбельная или что (если вы Можно rebind), перемещение в игровых меню требует большой конценрации и несет постоянный риск случайного сбоя в выполнении простых задач.

В любом случае, это довольно неприятно, раздражает и затрудняет мое хобби, потому что это означает, что я должен отказаться от игр, которые мне интересны.

Решения, которые я пробовал

Я купил Razer Abyssus. Обе версии драйверов настолько ужасно прослушиваются, что - для того, чтобы разрешить компоновку кнопок слева - мне нужно настроить цепочку драйверов Abyssus-old-X-Mouse Button Control. Поскольку Razer должен быть одним из лидеров периферийных устройств, связанных с игрой, тот факт, что они не могут сделать драйверы с базовым уровнем удобства использования, заставляет меня опасаться доверять мне и деньги на любой игровой мыши.

В течение последних 5 лет я пробовал около 8 различных приложений (включая демонстрацию платного программного обеспечения), которые должны были менять кнопки. К сожалению, никто из них не работал - они были либо наложением пользовательского интерфейса для Win-своп или своп был на еще более низком уровне, чем Win-своп (Д-мышь).

X-Mouse Button Control оказался ближе всего, но, к сожалению, он фактически не перехватывает исходные сигналы, поэтому вы в конечном итоге отправляете оба щелчок а также менюпри нажатии кнопки мыши.

Я также попробовал AutoHotKey, но простой макрос по строкам

left::right
right::left

не работало, и сообщество было менее полезным. (Форумы AHK обычно заполнялись ответами RTFM).

Возможные подводные камни

Сообщается, что у определенной марки ноутбуков есть меню пользовательских мышей на панели управления, которая распространяется Win-своп к уровню драйвера.


Заранее благодарю за любые ответы. Если вам требуется уточнение / дополнительная информация, я должен быть в состоянии предоставить их в течение 24 часов.


2
2017-10-04 12:20


Источник


Нельзя ли это переключиться на панели управления мышью? - Mark
@Mark Как явным образом сказал в сообщении, он переключается туда, но работает только в не-полноэкранных приложениях. - Dragomok
Связанный (но более конкретный) вопрос: superuser.com/q/462547/493800 - Dragomok
Вполне возможно, что [EitherMouse] (www.eithermouse.com) решит эту проблему, но у меня не будет времени проверить ее с помощью моих тестов в течение месяца или около того. - Dragomok
Я вернул ваши исправления. Здесь, на Super User (и всей сети Exchange Stack), наиболее полезные решения отмечены принятием ответа (как вы уже сделали), а не ссылкой на них в вопросе. Ответ будет органически продвинут на вершину, так как пользователи повышают его. - gronostaj


Ответы:


Если вы хотите навсегда переключить кнопки мыши, и программное обеспечение не позволит вам это сделать, вы можете попробовать сделать это на аппаратном уровне.

Разумеется, все это зависит от самого оборудования мыши, но вы должны иметь возможность снимать и разрешать провода, соединяющие прерывистые переключатели кнопки мыши.


5
2017-10-04 12:53



Мне нравится этот ответ. Хорошее боковое мышление :) - DavidPostill♦
Я действительно задавался вопросом об этом, однако я не был уверен, что это возможно / возможно. Думаю, я могу признать, что некоторым местным студентам или электрикам, когда у меня есть мыши, я могу рискнуть проиграть. Спасибо. (Тем не менее, я все равно буду немного ждать для не-аппаратных решений). - Dragomok


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

Moure, часть проекта Ext2Fsd, на самом деле делает левую мышь безупречно работать на всех моих тестах.

Конечно, это запускается в реальном окне, и, похоже, нет никакого способа автоматически запускать его при запуске (или автоматически отмечать каждую мышь как левую) изменяет общесистемные драйверы, которые затрагивают всех пользователей Windows (вместо одного пользователя), но это фактически работает,

Если я найду какие-либо проблемы во время моего использования, я обновлю эти ответы.


1
2017-07-10 14:33





Необычайно ненадежным обходным решением проблемы является использование следующего сценария AutoHotKey (работает для AHK v1.1.24.02 и, возможно, раньше):

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.

LButton::RButton
Rbutton::LButton

Он исправляет проблему для некоторые игры.

К сожалению, это не серебряное решение для пули и раздражает его использование, так как оно требует от вас отключить WinSwap каждый раз, когда вы запускаете проблемную игру (и снова включить ее при выходе), поскольку она практически разбивает панель задач Windows, когда она активна ( что также делает поворот его немного сложным).

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


0
2017-12-15 19:31



FYI, AutoHotkey позволит вам создавать привязки к конкретным программам с помощью #If заявления и #IfWinActive, что означает, что вы должны иметь возможность включить это, только когда определенные программы активны, и не нужно отключать / включать WinSwap. Например #If WinActive("ahk_exe programA.exe") || WinActive("ahk_exe programB.exe") будет включать обмен LButton / Rbutton только тогда, когда программа A или B является активным окном. - JJohnston2
@ JJohnston2 Это очень полезная информация, которая пригодится для других моих скриптов. Благодарю. - Dragomok