无法从Qt启动Microsoft管理控制台管理单元

时间:2014-05-13 19:25:26

标签: c++ qt process

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

必须以管理员权限运行程序。为了简化步骤调试并在这里引导一个例子,我开始使用特权管理员创建qt创建者。

现在是有趣的部分。

以下代码运行计算器。

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。

1 个答案:

答案 0 :(得分:2)

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

答案很长:

.mscsnap-in称为Microsoft Management Console

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

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

尝试改为services.mscmmc.exe services.msc