Название: Вопрос по QProcess Отправлено: merke от Декабрь 01, 2011, 14:39 Всем привет.
Есть прога, которая запускает дочерние процессы. Родительская прога консольная, если в консоли нажать ctrl+c, основная программа завершается, а вот дочерние процессы, запущенные ею остаются висеть в процеcсах. Платформа: Винда XP Вот код: Код
Название: Re: Вопрос по QProcess Отправлено: ddrtn от Декабрь 01, 2011, 14:42 Код: connect(qApp, SIGNAL(aboutQuit()), proc, SLOT(kill())); Название: Re: Вопрос по QProcess Отправлено: LisandreL от Декабрь 01, 2011, 14:43 А желаемое поведение какое?
Название: Re: Вопрос по QProcess Отправлено: merke от Декабрь 01, 2011, 14:51 Надо чтобы все дочерние процессы тоже выгружались.
Кстати вот это не срабатывает: QObject::connect(qApp, SIGNAL(aboutToQuit()), process, SLOT(kill())); Название: Re: Вопрос по QProcess Отправлено: ddrtn от Декабрь 01, 2011, 14:53 можно попробывать вместо kill terminate
Название: Re: Вопрос по QProcess Отправлено: merke от Декабрь 01, 2011, 14:55 Попробовал, не получается. Если бы это было гуишное приложение, тогда без проблем, а вот в консольном такие вот проблемы(
Название: Re: Вопрос по QProcess Отправлено: merke от Декабрь 01, 2011, 15:40 Уже думаю писать чтоли свой сборщик "мусора"...
Название: Re: Вопрос по QProcess Отправлено: Igors от Декабрь 01, 2011, 18:49 Если запускаемые приложения Ваши, то можно вставить в них проверку "жив ли запустивший" (напр 1 раз в секунду) и если нет - вываливаться (exit)
Если из "запустившего", то мочить с помощью ::TerminateProcess (WinAPI) |