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;
しかし、アプリケーションを実行していると、うまく動作することもあれば、まったく動作しないこともあります。
私はそれを何度もデバッグしましたが、関数が
process->waitForFinished();
明らかな理由なしに、false または true を返します。常に .exe ファイルがその場所にあり、コマンド ラインから実行している場合、またはファイルをダブルクリックして実行している場合は、正常に実行されますが、私のアプリケーション - うまく動くこともあれば、うまくいかないこともあります。
その理由やこの奇妙な問題の解決策について知っている人はいますか?
どんな答えでもいただければ幸いです。