How do I swap left and right mouse buttons in .NET (preferably C#)? Basically the result should be the same as if the user checked the "Switch primary and secondary buttons" checkbox in the Mouse Properties through the control panel. I'm dealing with Windows XP, in case that makes a difference.
Right-click the Windows icon and select Search. Type mouse. Select Mouse Settings. Under the Select your primary button drop-down, choose Left or Right.
You can use a Windows API call to SwapMouseButton
:
using System.Runtime.InteropServices;
// ...
[DllImport("user32.dll")]
public static extern Int32 SwapMouseButton(Int32 bSwap);
// ...
// Swap it.
SwapMouseButton(1);
// Back to normal.
SwapMouseButton(0);
Something like this:
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);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With