QProcess setEnvironmentは効果がありませんか?
質問
QProcess(vista64bitのQt4.4、MSVC2005で開発中)を使用してプログラムを起動しようとしています。プログラムがパスにないため、 QProcess :: setEnvironment 。
残念ながら、プログラムは起動されません。これは、実行ファイルがパスに見つからないためと思われます。これは既知の問題ですか?何か間違ったことをしますか?
パスを追加した後にQProcess環境を印刷することにより、パスが設定されることを確認しました。
次の2つの回避策があります。1つ目はプログラムをフルパスで起動すること、2つ目は実行可能ファイルを起動する前にディレクトリをパスに追加することですが、どちらも使用しません。
解決
QProcess :: setEnvironment()は、生成されるプロセスの環境にのみ影響し、生成が処理されるコンテキストには影響しません。スポーンするアプリが見つかるように、現在の環境を変更する必要があります(最初に:: SetEnvironmentVariable()を使用)。
アプリケーションファイルの検索については、 CreateProcess API。
このポインターシナリオの例。
所属していません StackOverflow