crossplatform.ru

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

3 страниц V  < 1 2 3 >  
Ответить в данную темуНачать новую тему
> Вопрос по вызову QProcess ?
DEADHUNT
  опции профиля:
сообщение 3.10.2009, 17:28
Сообщение #11


Активный участник
***

Группа: Участник
Сообщений: 430
Регистрация: 15.4.2009
Пользователь №: 686

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




Репутация:   2  


arg = QStringList() << "/c" << "console_runner.bat" << "calc.exe";
projectProcess->start("cmd.exe", arg);

console_runner.bat:
%*
pause

calc.exe запускается, но консоль не отображется.
может кто знает в чём дело?

консоль показывается если только использовать QProcess::startDetached

Сообщение отредактировал DEADHUNT - 3.10.2009, 17:13
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 3.10.2009, 17:32
Сообщение #12


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

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




Репутация:   23  


DEADHUNT,
а почему должна оставаться?
"console_runner.bat"
закончил работу,
ключ /c -- последующее завершение сеанса.
попробуй в командной строке набрать то что в программе должно выполниться.

извиняюсь не прав .
сейчас попробовал, остается командная строка.
хм...


Сообщение отредактировал kwisp - 3.10.2009, 17:36
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DEADHUNT
  опции профиля:
сообщение 3.10.2009, 17:34
Сообщение #13


Активный участник
***

Группа: Участник
Сообщений: 430
Регистрация: 15.4.2009
Пользователь №: 686

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




Репутация:   2  


работа не была завершенна, в скрипте же есть pause в конце.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 3.10.2009, 17:38
Сообщение #14


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

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




Репутация:   23  


почему не хочешь так?
arg = QStringList() << "calc.exe";
projectProcess->start("console_runner.bat", arg);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DEADHUNT
  опции профиля:
сообщение 3.10.2009, 17:45
Сообщение #15


Активный участник
***

Группа: Участник
Сообщений: 430
Регистрация: 15.4.2009
Пользователь №: 686

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




Репутация:   2  


также работает(calc запускается), но консоль не показывается. например вместо calc надо ping запустить, но консоли нет и результатов не видно.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 3.10.2009, 17:47
Сообщение #16


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

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




Репутация:   23  


DEADHUNT,
мож настройки винды такие.
а примерчика компилируемого нет?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DEADHUNT
  опции профиля:
сообщение 3.10.2009, 18:10
Сообщение #17


Активный участник
***

Группа: Участник
Сообщений: 430
Регистрация: 15.4.2009
Пользователь №: 686

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




Репутация:   2  


примерчик очень большой(не один десяток файлов), судя по гуглу Qt так работает, сам можешь скомпилировать минимальный код который я написал выше и всё увидишь.
QProcess::start не показывает консоль
QProcess::startDetached показывает (static class member).
но надо также отлавливать завершение процесса или вручную завершить процесс, поэтому второй вариант не подходит.

смысл всего этого кода сделать что то типа загрузчика програм(в идеале как в VS Start Without Debug).

Сообщение отредактировал DEADHUNT - 3.10.2009, 18:11
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 3.10.2009, 18:14
Сообщение #18


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

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




Репутация:   23  


DEADHUNT,
да start запускает консоль(в процессах видно), но скрывает её,
а видно консоль только если её отделить сразу же от процесса, а если отделлить то сигнала о завершении не получить.
:(
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DEADHUNT
  опции профиля:
сообщение 3.10.2009, 18:19
Сообщение #19


Активный участник
***

Группа: Участник
Сообщений: 430
Регистрация: 15.4.2009
Пользователь №: 686

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




Репутация:   2  


выход только WinAPI и условную компиляцию использовать? в линуксе отлично xterm работает.

Сообщение отредактировал DEADHUNT - 3.10.2009, 18:19
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 3.10.2009, 18:43
Сообщение #20


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


DEADHUNT, командная строка может захлопнутся, если программа вызываемая в батнике вернёт не нуль.

П.С. сам на такое наталкивался при выборочной компиляции Qt и вот к такому выводу пришёл.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

3 страниц V  < 1 2 3 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


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




RSS Текстовая версия Сейчас: 14.1.2025, 19:46