我用 QtCreator 和 C++ 编写了一个 qt 快速桌面应用程序。
我想从我的应用程序启动另一个应用程序。我搜索并找到了这些选项:Qprocess,具有以下功能:start、startDetached 和 execute。
我要启动的应用程序是单个应用程序,其他人建议我使用函数 startDetached。
我选择了 startDetached 函数的这个选项:
bool startDetached ( const QString & program, const QStringList & arguments, const QString & workingDirectory, qint64 * pid = 0 )
这是我的代码:
QProcess *process=new QProcess(this);
bool res;
QStringList argsList;
argsList.append("-start");
process->startDetached(emulauncherInstallationDirectory + "\\Emulauncher.exe",argsList,emulauncherInstallationDirectory);
res = process->waitForFinished();
delete process;
process=NULL;
return res;
但是当我运行我的应用程序时,它有时运行良好,而在其他时候则根本不起作用。
我调试了很多次,看到这个功能
进程->waitForFinished();
返回 false 或 true,没有明显的原因:在所有时间 .exe 文件都在它的位置,如果我从命令行运行它,或者通过双击文件,它运行良好,但是从我的应用程序 - 它有时运行良好,有时真的不行。
任何人都知道它的任何原因或这个奇怪问题的任何解决方案吗?
任何答案将不胜感激。