crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> не стартует процесс в Qt5
tradmir@mail.ru
  опции профиля:
сообщение 20.12.2017, 19:15
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 30.12.2013
Пользователь №: 4019

Спасибо сказали: 0 раз(а)




Репутация:   0  


Уважаемые знатоки!

хочу запустить из программы две команды командного окна и получить результат. В 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
  опции профиля:
сообщение 21.12.2017, 7:39
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2833
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 191 раз(а)




Репутация:   34  


tradmir@mail.ru,
попробуй сначала дождаться, когда первый процесс запустится

bool QProcess::waitForStarted(int msecs)

Сообщение отредактировал Алексей1153 - 21.12.2017, 7:39
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
tradmir@mail.ru
  опции профиля:
сообщение 22.12.2017, 19:09
Сообщение #3


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 30.12.2013
Пользователь №: 4019

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Алексей1153 @ 21.12.2017, 8:39) *
tradmir@mail.ru,
попробуй сначала дождаться, когда первый процесс запустится

bool QProcess::waitForStarted(int msecs)

Программа запускает первую команду, дожидается старта или состояния "исполняется" ,
дожидается состояния финишировала и стартует процесс2.
Процесс2 не стартует.

Похоже нужно ставить Qt5 полностью на Windows 7, хотел обойтись только пакетом зависимых dll.
Поставлю, результат сообщу.

Радмир
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 23.12.2017, 10:14
Сообщение #4


фрилансер
******

Группа: Участник
Сообщений: 2833
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 191 раз(а)




Репутация:   34  


tradmir@mail.ru, обычно копирования dll достаточно, не требуется установка всего Qt. Там что-то другое
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
tradmir@mail.ru
  опции профиля:
сообщение 29.12.2017, 18:49
Сообщение #5


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 30.12.2013
Пользователь №: 4019

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Алексей1153 @ 23.12.2017, 10:14) *
tradmir@mail.ru, обычно копирования dll достаточно, не требуется установка всего Qt. Там что-то другое


Да нет, просто малоизвестная фича от Qt, а именно:
Под Windows XP процесс запускается, если вы укажете рабочую директорию, типа process1.setWorkingDirectory("c:/..."),
а под Windows 7 нужно больше: QDir::setCurrent("c:/...").

Как обычно, чем больше знаешь, тем больше граница между тем, что знаешь и не знаешь.

Вопрос закрыт,
всем спасибо.

С уважением,
Радмир
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 19.7.2018, 4:42