【问题标题】:Cannot launch Microsoft Management Console snap-in from Qt无法从 Qt 启动 Microsoft 管理控制台管理单元
【发布时间】:2014-05-13 19:25:25
【问题描述】:

我正在尝试用另一个程序运行一个程序。为此,我使用了一个 QProcess 类。

程序必须以管理员权限运行。为了保持简单的步骤调试并在这里举个例子,我以管理员权限启动了 qt creator。

现在是有趣的部分。

以下代码运行计算器。

QProcess * p = new QProcess();
p->start("C:\\Windows\\System32\\calc.exe");
p->waitForStarted();
delete p;

此代码有效。 现在是另一个示例,它已经运行了服务窗口窗口。

QProcess * p = new QProcess();
p->start("C:\\Windows\\System32\\services.msc");
p->waitForStarted();
delete p;

此代码不运行程序 services.msc。文件存在并且从命令行运行没有任何问题。

为什么一个有效而另一个无效?如何解决?

Windows 7 x86。

【问题讨论】:

  • 这是个好问题 :)
  • 当您尝试“运行”.JPG 文件之类的文件时会发生什么?它应该在图像查看器中打开,但我认为使用 Qt 可能不会。相反,请尝试运行 mmc.exe,将 .MSC 文件作为参数传递。

标签: c++ qt process


【解决方案1】:

简答: .msc 不是可执行文件类型。

长答案:

.mscsnap-inMicrosoft Management Console

从命令提示符甚至从开始->运行win + R),运行services.msc告诉操作系统嘿,使用与.msc 文件关联的任何程序运行此文件。

该程序特别称为 mmc.exe,即使从命令提示符运行 services.msc 并查看任务管理器,您也会看到该窗口实际上属于 services.exe.

尝试改用mmc.exe services.msccmd.exe /C services.msc 启动。

【讨论】:

  • 它实际上是微软管理控制台的一个插件,应该用mmc.exe启动。 services.exe 也可能有用,idk。
  • @Steve 你说的很对。运行 services.exe 强制 Windows 8 重新启动 :) 更正了信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-20
相关资源
最近更新 更多