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

Cannot launch Microsoft Management Console snap-in from Qt

本文关键字:管理 管理控制 控制台 单元 微软 启动 Qt      更新时间:2023-10-16

我正在尝试用另一个程序运行一个程序。为此,我使用了一个类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

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

长答:

.msc被称为Microsoft管理控制台的管理单元。

从命令提示符,甚至从Start -> Run (win + R),运行services.msc告诉操作系统嘿,运行这个文件与.msc文件相关联的任何程序。

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

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