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:\Apathwith spaces\foo.exe

これを回避するにexecute(QString, QStringList)は、引数をまったく渡したくない場合でも、引数を別の文字列リストとして受け取るオーバーロードを使用します。

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

これは正しいことを行い、あなたの側からの引用は必要ありません。

于 2012-05-14T16:18:21.640 に答える