Как поменять местами левую и правую кнопки мыши в .NET (желательно С#)? В основном результат должен быть таким же, как если бы пользователь установил флажок «Переключить основную и дополнительную кнопки» в свойствах мыши через панель управления. Я имею дело с Windows XP, если это имеет значение.
Замена левой и правой кнопки мыши в .NET
comment
что вы подразумеваете под заменой... вы хотите сделать замену на системном уровне или для своего собственного приложения?
- person Aamir   schedule 17.03.2009
Ответы (3)
Вы можете использовать вызов Windows API для SwapMouseButton:
using System.Runtime.InteropServices;
// ...
[DllImport("user32.dll")]
public static extern Int32 SwapMouseButton(Int32 bSwap);
// ...
// Swap it.
SwapMouseButton(1);
// Back to normal.
SwapMouseButton(0);
person
John Feminella
schedule
17.03.2009
благодаря. возможно, вы захотите добавить, что вам нужно использовать System.Runtime.InteropServices;
- person Eugene Katz; 17.03.2009
Упс; Я действительно забыл упомянуть об этом. Я добавлю его для дальнейшего использования.
- person John Feminella; 17.03.2009
Это работает, но состояние не сохраняется после выхода пользователя из системы. Чтобы сохранить состояние подкачки, вы должны использовать решение Porges с реестром.
- person foka; 24.02.2013
Что-то вроде этого:
using Microsoft.Win32;
var key = Registry.CurrentUser.CreateSubKey("Control Panel\\Mouse\\");
var newValue = key.GetValue("SwapMouseButtons");
if (newValue == null) newValue = "1";
else newValue = Int32.Parse(newValue) == 1 ? "0" : "1";
key.SetValue("SwapMouseButtons", newValue, RegistryValueKind.String);
person
porges
schedule
17.03.2009