2

我想在我的 Qt 应用程序中按下按钮时启动一个可执行文件。它.exe始终与 Qt 应用程序本身位于同一目录中。

有时此目录的路径中有空格。这似乎阻止了.exe启动。

这是我的代码(似乎不起作用):

QString path = QCoreApplication::applicationDirPath ();
path.append("/executable.exe");

QProcess process;
process.execute(path);

我不知道是否可以在.exe不先显示命令提示符的情况下启动。当.exe运行时,我必须关闭 Qt 应用程序,同时.exe继续运行。

4

1 回答 1

6

execute(QString)对可执行路径和参数使用单个字符串。如果没有正确引用,C:\A path with spaces\foo.exe将被解释c:\A为可执行文件和path,with spaces\foo.exe作为参数。

为避免这种情况,请使用将execute(QString, QStringList)参数作为单独字符串列表的重载,即使您根本不想传递参数:

QProcess::execute(path, QStringList());

这是正确的事情,不需要您的任何引用。

于 2012-05-14T16:18:21.640 回答