我正在尝试使用其他程序运行程序。为此,我使用了一个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。
答案 0 :(得分:2)
简答: .msc
不是可执行文件类型。
答案很长:
.msc
被snap-in称为Microsoft Management Console。
从命令提示符或甚至从开始 - >运行( win + R ),运行services.msc
告诉操作系统嘿,使用与{相关联的任何程序运行此文件{1}}个文件。
该程序特别称为 mmc.exe ,即使从命令提示符运行.msc
并查看任务管理器,您也会看到窗口实际属于到 services.exe 。
尝试改为services.msc
或mmc.exe services.msc
。