2012-02-08 2 views
0

У меня есть 2 программы:Запуск внешнего процесса из программы Qt, с некоторыми изменениями

program 1 - Программа Qt, написанная мной.

program 2 - Программа, не написанная.

Моя цель - запустить программу 2 из программы 1 (я знаю, как это сделать).

Моя проблема, однако, в том, что в программе 2 есть некоторые .ini-файлы, которые она ищет. Оказывается, что программа каталога 2 выглядит не в каталоге исполняемого файла, а в каталоге процесса , начиная исполняемый файл ... в этом случае программа 1.

поэтому моя ошибка читает что-то вроде этого :

«не может найти файл xxx.ini в директории C: // каталог программы 1 // IniFiles // ...

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

ответ

4

Предполагая, что вы e, используя QProcess для запуска программы 2, вам необходимо установить рабочий каталог, вызвав QProcess::setWorkingDirectory(const QString &dir).

В documentation состояния:

Устанавливает рабочий каталог реж. QProcess начнет процесс в этой директории. Поведение по умолчанию - начать процесс в рабочем каталоге вызывающего процесса.

0

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

QDir application_dir = QDir(QDir::currentPath()); 

Это очень полезно для отладки.

Смежные вопросы