Eugene Katz
Eugene Katz

Reputation: 5284

Swapping left and right mouse button in .NET

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.

Upvotes: 7

Views: 5776

Answers (3)

John Feminella
John Feminella

Reputation: 311605

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); 

Upvotes: 15

porges
porges

Reputation: 30580

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);

Upvotes: 4

Ólafur Waage
Ólafur Waage

Reputation: 70001

Here's a code snippet that does this.

Upvotes: -1

Related Questions