Обмен левой и правой кнопки мыши в .NET - PullRequest
7 голосов
/ 17 марта 2009

Как поменять местами левую и правую кнопки мыши в .NET (желательно C #)? По сути, результат должен быть таким же, как если бы пользователь установил флажок «Переключение основных и дополнительных кнопок» в свойствах мыши через панель управления. Я имею дело с Windows XP, на случай, если что-то изменится.

Ответы [ 3 ]

13 голосов
/ 17 марта 2009

Вы можете использовать вызов 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); 
3 голосов
/ 17 марта 2009

Примерно так:

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);
1 голос
/ 17 марта 2009

Вот фрагмент кода , который делает это.

...