Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проверка запущенного процесса, Если запущен - выдавать предупреждение 
V
    Опции темы
Lindemann66
  Дата 17.10.2011, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Thinking...
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 2.8.2011
Где: Ульяновск

Репутация: нет
Всего: нет



Ещё раз привет всем!

Задача следующая
При запуске программы выполнять проверку
- Если процесс с данным именем уже запущен, показывать предупреждение, и завершать выполнение программы
- Если процес не запущен - продолжать выполнение

Пробовал реализовывать посредством сигналов...
В документации к QProcess написано следующее:
Цитата

void QProcess::start ( const QString & program, const QStringList & arguments, OpenMode mode = ReadWrite )

Starts the given program in a new process, if none is already running, passing the command line arguments in arguments. The OpenMode is set to mode.

The QProcess object will immediately enter the Starting state. If the process starts successfully, QProcess will emit started(); otherwise, error() will be emitted. If the QProcess object is already running a process, a warning may be printed at the console, and the existing process will continue running.

Note: Processes are started asynchronously, which means the started() and error() signals may be delayed. Call waitForStarted() to make sure the process has started (or has failed to start) and those signals have been emitted.


Код

Process::Process() {
    connect(&m_process, SIGNAL(started()),
            this,       SLOT(started())
            );

    connect(&m_process, SIGNAL(error(QProcess::ProcessError)),
            this,       SLOT(error(QProcess::ProcessError))
            );
}

Process::~Process() {

}

void Process::start() {
    m_process.start("ExeText.exe");
    if (!m_process.waitForFinished()) {
        QMessageBox::warning(0, "Error", "Error");
    } else {
        QMessageBox::information(0, "Success", "Success");
    }
}

void Process::started() {
    //QMessageBox::information(0, "Success", "Success");
}

void Process::error(QProcess::ProcessError error) {
    //QMessageBox::warning(0, "Error", "Error");
}


Но это не помогает
Ещё написано про состояние процесса...
Цитата

When the process exits, QProcess reenters the NotRunning state (the initial state), and emits finished().


Но я это не пробовал...

Что посоветуете, как можно решить эту проблему?
Буду благодарен за любой совет!
--------------------
stay true
PM MAIL WWW ICQ   Вверх
Lindemann66
Дата 17.10.2011, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Thinking...
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 2.8.2011
Где: Ульяновск

Репутация: нет
Всего: нет



В общем, проблему решил использованием QtSingleApplication
Скачать можно тут: QtSingleApplication from git
--------------------
stay true
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0805 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.