Russian Qt Forum

Qt => Многопоточное программирование, процессы => Тема начата: Денис от Сентябрь 19, 2014, 18:50



Название: QProcess проблема: запущено приложение или нет ? [РЕШЕНО]
Отправлено: Денис от Сентябрь 19, 2014, 18:50
Проблема в следующем, есть основная прога и дочерняя. Дочерняя может жить после прекращения основной, но при повторном запуске основная программа должна знать запущен ли процесс с таким именем или нет и иметь возможность его закрыть. Полазил по форуму но ничего не нашел, заранее извиняюсь если пложу клон-темы ...
Проверяю статус открыта программа или нет (в основной):
Код:
    Sprocess = new QProcess();
    Sprocess->setProgram("\Daemon");
    Sprocess->setArguments(QStringList() << QString::number(xmlConf.timer) << xmlConf.str << QString::number(xmlConf.port));
    if(Sprocess->isOpen() == true)
        ui->pushButton->setDisabled(true);
    else
        ui->pushButton_2->setDisabled(true);

Проблема в том что не работает данная конструкция, процесс в диспечере висит, но основная программа не видит что он запущен. Пробывал и через Sprocess->state() == QProcess::Running.
Вычитал где-то что можно сделать через SingleProject ????????


Название: Re: QProcess проблема: запущено приложение или нет ?
Отправлено: Денис от Сентябрь 19, 2014, 19:37
Что никто не знает как закрыть существующий поток ?


Название: Re: QProcess проблема: запущено приложение или нет ?
Отправлено: vitfil от Сентябрь 19, 2014, 21:11
Посмотрите, как устроен singleton.


Название: Re: QProcess проблема: запущено приложение или нет ?
Отправлено: Денис от Сентябрь 19, 2014, 21:23
Типа работать с тем приложением через сокет ?


Название: Re: QProcess проблема: запущено приложение или нет ?
Отправлено: Alex Custov от Сентябрь 19, 2014, 21:30
QProcess знает только о запущенных им самим процессах. Общайся с дочерним процессом через сокет или любой другой механизм IPC.


Название: Re: QProcess проблема: запущено приложение или нет ?
Отправлено: Денис от Сентябрь 19, 2014, 21:33
QProcess знает только о запущенных им самим процессах. Общайся с дочерним процессом через сокет или любой другой механизм IPC.

Можешь примерчик скинуть ... чтоб понятно было как это правильно сделать ?
А то я щас велосипед изобрету )


Название: Re: QProcess проблема: запущено приложение или нет ?
Отправлено: Денис от Сентябрь 20, 2014, 03:32
Всем спасибо  ;D, уже сделал через локальный сокет QLocalServer и QLocalSocket  :o