我需要使用提升的权限生成一个进程,这会导致为用户弹出UAC提示符:
using (process = new Process())
{
process.StartInfo.FileName = fileName;
process.StartInfo.Arguments = string.Join(" ", arg1, arg2, arg3);
process.StartInfo.Verb = "runas";
process.Start();
}
我遇到的问题是,如果用户在UAC提示中选择“否”,则进程对象将抛出一个异常,指出“操作已被用户取消”。如果用户选择“否”,则父进程应该正常继续(生成的进程完全是可选的)。除了捕获异常并且什么也不做之外,还有更好的方法来处理这种情况吗?
答案 0 :(得分:2)
你还想做什么而不是捕捉异常而什么都不做?这是我唯一能想到的。
答案 1 :(得分:1)
您需要捕获该错误,如果您使用后台工作人员,则不会收到任何异常错误。尽管如此,不单独捕获异常仍然是一种不好的做法。
这是完成的方式:
try
{
//your code here
using (process = new Process())
{
process.StartInfo.FileName = fileName;
process.StartInfo.Arguments = string.Join(" ", arg1, arg2, arg3);
process.StartInfo.Verb = "runas";
process.Start();
}
//end code
}
catch(System.ComponentModel.Win32Exception)
{
//Do Something or Leave it empty to swallow the exception
}