![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
tradmir@mail.ru |
![]()
Сообщение
#1
|
Студент ![]() Группа: Новичок Сообщений: 14 Регистрация: 30.12.2013 Пользователь №: 4019 Спасибо сказали: 5 раз(а) Репутация: ![]() ![]() ![]() |
Уважаемые знатоки!
хочу запустить из программы две команды командного окна и получить результат. В qt4 все работает, а qt5 не стартует второй процесс. процесс 1 запускает команду: process1.start("myecho.exe сабака"); если процесс1 стартовал и/или выполняется, то ожидается финиш процесса 1 и вызвается процесс 2 if (process1.state()==QProcess::Starting || process1.state()==QProcess::Running){ if (process1.waitForFinished()){ process2.start(cmd2); далее проверяется состояние процесса 2, оказывается, состояние процесса есть Not running Сборка собранная под Qt5 в операционной системе Windows XP(32 bit) работает на Windows XP(32 bit), та же сборка собранная под Qt5 в операционной системе Windows XP(32 bit) не работает на Windows 7. Подскажите в чем проблема? С уважением, Радмир |
|
|
Алексей1153 |
![]()
Сообщение
#2
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
tradmir@mail.ru,
попробуй сначала дождаться, когда первый процесс запустится bool QProcess::waitForStarted(int msecs) Сообщение отредактировал Алексей1153 - 21.12.2017, 7:39 |
|
|
tradmir@mail.ru |
![]()
Сообщение
#3
|
Студент ![]() Группа: Новичок Сообщений: 14 Регистрация: 30.12.2013 Пользователь №: 4019 Спасибо сказали: 5 раз(а) Репутация: ![]() ![]() ![]() |
tradmir@mail.ru, попробуй сначала дождаться, когда первый процесс запустится bool QProcess::waitForStarted(int msecs) Программа запускает первую команду, дожидается старта или состояния "исполняется" , дожидается состояния финишировала и стартует процесс2. Процесс2 не стартует. Похоже нужно ставить Qt5 полностью на Windows 7, хотел обойтись только пакетом зависимых dll. Поставлю, результат сообщу. Радмир |
|
|
Алексей1153 |
![]()
Сообщение
#4
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
tradmir@mail.ru, обычно копирования dll достаточно, не требуется установка всего Qt. Там что-то другое
|
|
|
tradmir@mail.ru |
![]()
Сообщение
#5
|
Студент ![]() Группа: Новичок Сообщений: 14 Регистрация: 30.12.2013 Пользователь №: 4019 Спасибо сказали: 5 раз(а) Репутация: ![]() ![]() ![]() |
tradmir@mail.ru, обычно копирования dll достаточно, не требуется установка всего Qt. Там что-то другое Да нет, просто малоизвестная фича от Qt, а именно: Под Windows XP процесс запускается, если вы укажете рабочую директорию, типа process1.setWorkingDirectory("c:/..."), а под Windows 7 нужно больше: QDir::setCurrent("c:/..."). Как обычно, чем больше знаешь, тем больше граница между тем, что знаешь и не знаешь. Вопрос закрыт, всем спасибо. С уважением, Радмир |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 25.2.2025, 20:06 |