我在设置QProcess以使用参数运行可执行文件时遇到问题。相同的Qt代码如下,
QString program = "C:\Setup.exe";
QStringList arguments;
arguments << "-uninstall";
QProcess::startDetached(program, arguments);
此代码段的输出是卸载某些程序。但这没有发生。我有什么错误吗?
但是,如果我进入cmd提示符并执行类似的操作,
c:/>“C:/Setup.exe”-卸载
这很完美。
最佳答案
至少有两个选项可以解决您的问题。
env.insert("TMPDIR", "C:\\MyApp\\temp"); // Add an environment variable
env.insert("PATH", env.value("Path") + ";C:\\Bin");
因此,您应该编写如下内容:
QString program = "C:/Setup.exe";
QStringList arguments;
arguments << "-uninstall";
QProcess::startDetached(program, arguments);
或这个:
QString program = "C:\\Setup.exe";
QStringList arguments;
arguments << "-uninstall";
QProcess::startDetached(program, arguments);
通常,遇到此类问题时,可以始终使用以下语法打印出错误字符串以获取更多信息:
qDebug() << myProcess.errorString();
当然,这需要一个实例。
关于c++ - QProcess问题执行带有参数的exe,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23243436/