I'm repeating a question from another forum, as I'd like the same answer.
From MSDN's SwapMouseButton Function.
How do I pass boolean data from command prompt through rundll32.exe to a boolean type argument in a command running from user32.dll?
I'm trying to run this from CMD (the command prompt)
RUNDLL32.EXE user32.dll,SwapMouseButton *
Where the asterisk is here is where the argument should go. I already ran it without an argument and it swapped my left and right mouse buttons (seems TRUE is the default entry for the boolean argument). Now I want to undo it. However I've tried each of these for passing FALSE in the argument, and none have worked (none set my mouse buttons back to normal).
- F
- f
- false
- False
- FALSE
- "false"
- "False"
- "FALSE"
- 0
- -1
Please help me pass the argument as needed. Thanks in advance.
Thanks so much for the C# solution. It worked like a charm.
I made a slight alteration so that I could simply click on a desktop short-cut to toggle the primary mouse button, without passing in arguments. In case my approach helps someone else, here is that version:
using System.Runtime.InteropServices;
using System;
class SwapMouse
{
[DllImport("user32.dll")]
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
}
}
}