【问题标题】:C# Start Program with ADMIN rights from other program [duplicate]C# 使用其他程序的管理员权限启动程序 [重复]
【发布时间】: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:就像“请求的操作需要提升的权限”

标签: c# windows process admin processstartinfo


【解决方案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 并且当时确实有效。
猜你喜欢
  • 1970-01-01
  • 2015-05-07
  • 1970-01-01
  • 2013-12-13
  • 2017-03-18
  • 1970-01-01
  • 2011-12-01
  • 2012-01-12
  • 1970-01-01
相关资源
最近更新 更多