Russian Qt Forum
Ноябрь 27, 2024, 02:40 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Qprocess и kill  (Прочитано 8175 раз)
maks
Гость
« : Сентябрь 23, 2008, 18:07 »

Добрый день.
Qprocess  у меня запускает firefox.
в определенный момент я у Qprocess вызываваю  метод kill но firefox щстается запущен.
Как же все таки пристрелить firefox.

Код:
QProcess qpr=new QProcess;
qpr->start("firefox",NULL);

qpr->kill()// ноль эмоций.
Записан
chipset
Гость
« Ответ #1 : Сентябрь 24, 2008, 06:12 »

terminate() ?
Записан
Alex03
Гость
« Ответ #2 : Сентябрь 24, 2008, 07:39 »

попробуй другой процесс запустить.
некоторые проги при запуске порождают новый, отвязанный процесс и завершаются. Так может например саморазархивирующиеся проги делать и т.д. Случайно finished() не приходит почти сразу после старта?
Записан
maks
Гость
« Ответ #3 : Сентябрь 24, 2008, 13:18 »

Да finish в самом деле выполняется сразу после запуска.
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #4 : Апрель 08, 2010, 17:45 »

хм, тема старая, но похоже, еще актуальна Улыбающийся
в самом деле, а есть ли возможность через QProcess прибить процессы, запущенные процессом, запущенным QProcess ? Улыбающийся
например через QProcess пускается батник, который в свою очередь пускает прогу. QProcess::kill() прибьет только процесс батника, но не запущенной проги. Я понимаю, что можно это через системные функции сделать, но интересно, как кути с этим справляется.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« Ответ #5 : Апрель 09, 2010, 07:04 »

вообще-то есть в POSIX...

Код:
#include <sys/types.h>

#include <signal.h>

int kill(pid_t pid, int signalnumber);

и Qt наверняка через это и работает, только разбирается самостоятельно с правами
Записан

2^7-1 == 127, задумайтесь...
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #6 : Ноябрь 30, 2010, 14:45 »

Вдруг кому поможет - использовал вот такой ХАК для переоткрытия окна FireFox который выводит видеонаблюдение

Код:
	QProcess process;
process.start( "killall firefox-bin" );
process.waitForFinished();

QStringList arguments;
arguments.append( QString("http://%1:8081/").arg(m_sIPAddress) );

m_FirefoxVideo.terminate();
m_FirefoxVideo.kill();
m_FirefoxVideo.waitForFinished();
m_FirefoxVideo.start( "firefox", arguments );
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.132 секунд. Запросов: 22.