vsto项目点击but后调用同更目录下的以管理员身份运行demo.exe
vsto项目点击but后调用同更目录下的以管理员身份运行demo.exe
Verb = "runas":触发Windows UAC弹窗,请求管理员权限- 路径处理:使用
Assembly.GetExecutingAssembly().Location获取VSTO插件部署路径,避免硬编码。 - 异常处理:捕获
Win32Exception以处理用户拒绝权限的情况。
private void button1_Click(object sender, RibbonControlEventArgs e)
{
// 获取当前程序所在目录
string currentDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
string exePath = Path.Combine(currentDir, "demo.exe");
var startInfo = new ProcessStartInfo
{
FileName = exePath,
UseShellExecute = true,
Verb = "runas", // 关键:触发UAC提权
WorkingDirectory = currentDir
};
try
{
Process.Start(startInfo);
}
catch (Win32Exception ex)
{
// 用户拒绝UAC弹窗时捕获异常
MessageBox.Show("权限请求被拒绝:" + ex.Message);
}
}
如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】。
如果,您希望更容易地发现我的新博客,不妨点击一下左下角的【关注我】。
如果,您对我的博客所讲述的内容有兴趣,请继续关注我的后续博客,我是【1010阿龙】。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。


浙公网安备 33010602011771号