0

QProcess (vista64bit 上の Qt4.4、MSVC2005 で開発) を使用してプログラムを開始しようとしています。プログラムはパスにないため、 QProcess::setEnvironmentのドキュメントで示されているのと同様の方法で、プログラムがあるディレクトリを QProcess 環境に追加しようとしました。

残念ながら、実行可能ファイルがパスに見つからないため、プログラムは開始されません。これは既知の問題ですか? 私は何か間違ったことをしていますか?

パスを追加した後に QProcess 環境を出力することで、パスが設定されることを確認しました。

2 つの回避策があります。1 つ目は、プログラムをフル パスで起動することです。2 つ目は、実行可能ファイルを起動する前にディレクトリをパスに追加することですが、どちらも使用したくありません。

4

1 に答える 1

2

QProcess::setEnvironment() は、スポーンが処理されるコンテキストではなく、スポーンされるプロセスの環境にのみ影響します。スポーンしているアプリが見つかるように、現在の環境を変更する必要があります (手始めに ::SetEnvironmentVariable() を使用します)。

アプリケーション ファイルの検索については、CreateProcess API のドキュメントで概説されています。

シナリオの例については、このポインターを確認してください。

于 2009-01-19T12:05:55.393 に答える