In my C# code I have roughly this:
public void RunCommand()
{
var processStartInfo = new ProcessStartInfo(
"notepad.exe")
{
UseShellExecute = true,
Verb = "Runas",
};
var process = Process.Start(processStartInfo);
process.WaitForExit(1000);
}
When run, this prompts the user to grant elevated privileges. If the user refuses, the call throws a Win32Exception with the text "The operation was cancelled by the user".
I want to catch this exception specifically, i.e., tell it apart from other exceptions. I want to be able to know that the user has cancelled.
Can I be reasonably confident that when a Win32Exception is thrown, it is probably this? Or can the call throw Win32Exception for all sorts of other reasons? I don't want to start string matching on the error message, since that presumably varies depending on user settings...