As blsub6 mentioned, you can change a registry value (with a command called from a batch file):
REG ADD "HKCU\Control Panel\Mouse" /t REG_SZ /v SwapMouseButtons /d 1 /f
REG ADD "HKCU\Control Panel\Mouse" /t REG_SZ /v SwapMouseButtons /d 0 /f
However, you need to logout before it will take effect.
The better solution is to make a tiny .exe with C# to swap the setting, as described in the answers to this question.
Make a text file which you can call
swapmouse.cs, containing this:
public static extern Int32 SwapMouseButton(Int32 bSwap);
static void Main(string args)
int rightButtonIsAlreadyPrimary = SwapMouseButton(1);
if (rightButtonIsAlreadyPrimary != 0)
SwapMouseButton(0); // Make the left mousebutton primary
And compile it to
swapmouse.exe with this command:
In more recent versions of .NET you may need to add
"[%SystemRoot%]\Microsoft.NET\Framework64\[version]\csc" /out:swapmouse.exe /target:exe swapmouse.cs
Then you just double-click that exe to swap the mouse buttons. It takes effect immediately.
Or, as rad mentions, you can create a shortcut, and define a keyboard shortcut/hotkey in the Shortcut tab of it's Properties.