以管理员身份从qt运行pnputil(或其他Windows内置)

running pnputil (or other windows built-in) from qt, as administrator

本文关键字:其他 Windows 内置 pnputil 身份 管理员 qt 运行      更新时间:2023-10-16

如何从Qt c++应用程序内运行pnputil ?下面的命令失败,lstderr显示"无法将pnputil识别为内部或外部命令"。大概是因为pputil是内置的(替换非内置的是有效的)。QProcess类参考说"cmd/c"格式是Windows内置的"可能的解决方案",但不适合我。

QProcess process;
process.start("cmd /c "pnputil -e"" );
if (!process.waitForStarted())
    return false;
if (!process.waitForFinished())
    return false;
QByteArray lstderr = process.readAllStandardError();
QByteArray lstdout = process.readAllStandardOutput();

您的进程可能在查找可执行文件时使用了错误的PATH。尝试调用PnPUtil的完整路径:

%WINDIR%System32PnPUtil.exe

你可以在Qt Land中使用:

qgetenv("WINDIR");

如果你的应用程序只支持windows,并且你不介意使用本机调用:

GetWindowsDirectory();