QProcess setEnvironment не имеет никакого эффекта?

StackOverflow https://stackoverflow.com/questions/453306

  •  19-08-2019
  •  | 
  •  

Вопрос

Я пытаюсь запустить программу с использованием QProcess (Qt4.4 на vista64bit, разрабатывается в MSVC2005). Программа не находится в пути, поэтому я попытался добавить каталог, в котором находится программа, в среду QProcess, способом, подобным тому, что продемонстрировано в документации QProcess :: setEnvironment .

К сожалению, программа не запускается, очевидно, потому что исполняемый файл не может быть найден в пути. Это известная проблема? Я делаю что-то не так?

Я проверил, что путь установлен, напечатав среду QProcess после добавления пути.

Есть два обходных пути: первый - запустить программу с полным путем, второй - добавить каталог в путь перед запуском исполняемого файла, но я тоже не хочу его использовать.

Это было полезно?

Решение

QProcess :: setEnvironment () влияет только на среду вызываемого процесса, но не на контекст, в котором обрабатывается порождение. Вам нужно изменить текущую среду, чтобы найти приложение, которое вы порождаете (используя для начала :: SetEnvironmentVariable ()).

Поиск файла приложения описан в документации CreateProcess API.

Проверьте этот указатель для примера сценария.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top