C# 使用其他程序的管理员权限启动程序 [重复]
Posted
技术标签:
【中文标题】C# 使用其他程序的管理员权限启动程序 [重复]【英文标题】:C# Start Program with ADMIN rights from other program [duplicate] 【发布时间】:2021-07-02 00:34:11 【问题描述】:我编写了一个通知程序,它与 WebSocket 上的 Windows 服务进行通信。此通知程序没有管理员权限,但单击按钮启动另一个程序,该程序启动和停止服务。这个程序应该以管理员权限运行,它在一段时间内运行良好,但不知何故不再运行了。
这是我的代码 sn-p:
using (var process = new Process())
process.StartInfo.UseShellExecute = false;
process.StartInfo.FileName = $".\\ServiceControl.exe";
process.StartInfo.CreateNoWindow = true;
process.StartInfo.Arguments = $"-s ServiceName -start";
process.StartInfo.Verb = "runas";
process.Start();
例外情况如下:
System.ComponentModel.Win32Exception: "Der angeforderte Vorgang erfordert erhöhte Rechte"
当时它显示了一个窗口,我可以在其中接受管理员权限,但不再接受。
【问题讨论】:
有没有机会提供英文的错误信息? @Llama:就像“请求的操作需要提升的权限” 【参考方案1】:尝试添加这一行
process.StartInfo.UseShellExecute = true;
开
using (var process = new Process())
process.StartInfo.UseShellExecute = true;
process.StartInfo.FileName = $".\\ServiceControl.exe";
process.StartInfo.CreateNoWindow = true;
process.StartInfo.Arguments = $"-s ServiceName -start";
process.StartInfo.Verb = "runas";
process.Start();
【讨论】:
@Llama 有效,但我不想为此弹出一个黑色窗口。我故意检查了 fals 并且当时确实有效。以上是关于C# 使用其他程序的管理员权限启动程序 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
Windows 窗体 - C# - 要求管理员权限 [重复]