Здравствуйте, гость ( Вход | Регистрация )
SABROG | Дата 23.2.2010, 12:12 |
В Qt 4.6 появился новый класс QProcessEnvironment для ранних версий можно использовать не документированные функции qgetenv, qputenv о которых я писал давно в теме "Секреты и интересные возможности Qt" |
|
zloyGamer | Дата 23.2.2010, 10:45 |
а можно заранее сформировать батник aga.bat - где все будет разложено по полочкам, типа: Цитата SET PATH=%PATH%;/path/to/git/; git status process->start(QString("cmd.exe aga.bat")); или формировать этот батник из твоей программы и запускать )) |
|
BRE | Дата 23.2.2010, 10:02 |
просто это менее гибко на мой взгляд, чем использование переменной окружения PATH Почему, пользователь не задал в PATH путь до git, значит оно ему не надо. Можно попробовать добавлять свой путь в окружение и запускать git через командный интерпретатор, как-то так:
Тогда установленное окружение будет доступно в cmd и он будет их использовать для запуска git, но возможны другие трудности, например, с пайпами. |
|
Litkevich Yuriy | Дата 23.2.2010, 9:53 |
process->start(QString("/path/to/git/git status")); ну я сейчас почти так и делаю:
просто это менее гибко на мой взгляд, чем использование переменной окружения PATH |
|
BRE | Дата 23.2.2010, 9:45 |
Хорошо, а возможно ли как-то задать путь поиска? в QProcess я вообще минимум функциональности вижу, скудноватый он какой-то.
|
|
Litkevich Yuriy | Дата 23.2.2010, 9:41 |
Хорошо, а возможно ли как-то задать путь поиска? в QProcess я вообще минимум функциональности вижу, скудноватый он какой-то. |
|
BRE | Дата 23.2.2010, 9:28 |
Твое окружение передается запускаемому процессу (git), но оно никак не используется для твоем приложении, т.е. для поиска git.exe оно не используется. | |
Litkevich Yuriy | Дата 23.2.2010, 6:16 |
Наткнулся на проблему, суть которой понять не могу. С помощью QProcess хочу запустить консольную программу (git status). Однако в стандартном окружении (а именно в PATH) нет пути к её бинарю. Хотел добавить этот путь для QProcess с помощью QProcess::setEnvironment. Окружение изменяется, но git не запускается. Т.е. делаю так: 1) запускаю свою программу в командной строке (на Виндовозе), в ответ получаю своё отладочное сообщение "Process \"git status\" may not started" 2) В командной строке устанавливаю новое значение PATH (set PATH=%PATH%;path/to/git/bin;), а затем запускаю свою программу - она запускает git. Как делаю в коде? Отдельная фукция для задания пути к git'у: Сам код запуска git'а:
Окружение устанавливается перед process->start, это наверняка, так как выводил отладку:
Т.е. установка пути в PATH ни даёт ни какого эффекта, почему? ---- Виндовоз, Qt 4.4.3, MinGW32 |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 28.3.2024, 14:57 |