【问题标题】:How to start `powercfg.exe -energy` from a .NET app?如何从 .NET 应用程序启动“powercfg.exe -energy”?
【发布时间】:2016-07-27 21:50:21
【问题描述】:

当我

using (var process = new Process
{
    StartInfo = new ProcessStartInfo
    {
         FileName = "powercfg.exe",
         Arguments = "-energy",
         RedirectStandardOutput = true,
         UseShellExecute = false,
    }
})
{
    process.Start();
    process.WaitForExit();
}

它输出:

A biblioteca de Diagnóstico de Eficiência de Consumo de Energia (energy.dll) não pôde ser carregada。

翻译成英文:

无法加载能源消耗效率诊断库 (energy.dll)。

即使以管理员身份运行。

【问题讨论】:

  • 这个问题只发生在从.NET执行应用程序时,当我从命令行调用它时它运行正常
  • 为什么会有 UseShellExecute = false?
  • @dthorpe RedirectStandardOutput = true 需要 UseShellExecute = false

标签: .net windows windows-7 process powercfg


【解决方案1】:

恐怕我无法复制您的结果;我得到了预期的结果文件。但如果有帮助,也许我的测试参数会帮助您缩小环境中的罪魁祸首:

  • 以管理员身份运行 Visual Studio 2010
  • 目标 .NET 4 客户端配置文件
  • 编译了 x86 和 Any CPU 二进制文件
  • 计算机运行的是 Windows 7 x64

【讨论】:

  • 罪魁祸首是使用“energy.dll”的参数“-energy”。在您测试它时我没有包含这个论点,但现在我编辑了这个问题。我的环境和你一样。
  • 我确实把那个论点放在那里,这就是我修改答案的原因。它适用于书面。
  • 它开始工作了,但我不知道是什么导致了问题或解决了它
【解决方案2】:

WorkingDirectory设置为energy.dllpowercfg.exe所在的路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多