Russian Qt Forum
Ноябрь 24, 2024, 14:55
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
Qprocess
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Qprocess (Прочитано 6500 раз)
Иван4444
Гость
Qprocess
«
:
Октябрь 22, 2010, 12:37 »
Всем привет.
Возникла необходимость в использовании QProcess. Почитал документацию, но не нашел код возвращаемого значения (успешно или нет).
Если раньше в код было
Код:
int res = system("smth")
if(res == 0)
{}
else
{}
то теперь, дабы не менять весь код, хочется просто заполнить переменную res.
как быть? (Process::start() ничего не возвращает)
Записан
BRE
Гость
Re: Qprocess
«
Ответ #1 :
Октябрь 22, 2010, 12:43 »
int QProcess::exitCode () const
Записан
Иван4444
Гость
Re: Qprocess
«
Ответ #2 :
Октябрь 22, 2010, 12:45 »
exitCode() в какой момент вернет значение?
а если я запустил программу, она еще выполняется.. то exitCode() уже можно вызвать?
в документации "Returns the exit code of the last process that finished." тут интересно именно finished.
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Qprocess
«
Ответ #3 :
Октябрь 22, 2010, 12:46 »
bool waitForFinished ( int msecs = 30000 )
bool waitForStarted ( int msecs = 30000 )
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Иван4444
Гость
Re: Qprocess
«
Ответ #4 :
Октябрь 22, 2010, 12:47 »
если говорить о windows, то судя по всему, ближе по возвращаемому значению будет ExitStatus()
Записан
Иван4444
Гость
Re: Qprocess
«
Ответ #5 :
Октябрь 22, 2010, 12:50 »
так-с.. тут вот какое дело.
я запускаю например не просто процесс, а демон который будет работать до наступления всемирного потопа.
И сразу же надо делать другие задачи, просто учитывая фактор того что запустился/не запустился.
«
Последнее редактирование: Октябрь 22, 2010, 13:24 от Иван4444
»
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Qprocess
«
Ответ #6 :
Октябрь 22, 2010, 12:52 »
Смотри что вернет bool waitForStarted ( int msecs = 30000 ). int msecs - время ожидания старта. Читай ассистент.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
BRE
Гость
Re: Qprocess
«
Ответ #7 :
Октябрь 22, 2010, 12:59 »
Цитата: Иван4444 от Октябрь 22, 2010, 12:50
так-с.. тут вот какое дело.
я запускаю например не просто процесс, а демон который будет работать до наступления всемирного потопа.
И сразу же надо делать другие задача, просто учитывая фактор того что запустился/не запустился.
Если это нормальный демон, то он себя форкнет и сразу завершиться, после этого ты сможешь получить код завершения.
Записан
developer
Гость
Re: Qprocess
«
Ответ #8 :
Октябрь 22, 2010, 13:14 »
Цитировать
Если это нормальный демон, то он себя форкнет и сразу завершиться, после этого ты сможешь получить код завершения.
А еще если ето нормальный демон, он должен записать pid файл со своим process id. кроме всего выше перечисленного(в постах) ты еще можеш проверить есть ли уже етот файл, вытащить оттуда процесс ид, и проверить существует ли такой процес в таблице процесов - если да тогда можно считать что демон запустился, если нет, тогда можно припустить что что-то пошло не так.
Записан
Иван4444
Гость
Re: Qprocess
«
Ответ #9 :
Октябрь 22, 2010, 13:19 »
спс парни, выручаете.
Ну и посл вопрос, а можно ли при помощи QProcess выполнить например "beaty.jpg" чтоб в случае чего он просто его открыл в той программе с которой он ассоциируется?
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Qprocess
«
Ответ #10 :
Октябрь 22, 2010, 13:21 »
Для этого существует bool QDesktopServices::openUrl ( const QUrl & url ) [static]
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
BRE
Гость
Re: Qprocess
«
Ответ #11 :
Октябрь 22, 2010, 13:22 »
Цитата: Иван4444 от Октябрь 22, 2010, 13:19
Ну и посл вопрос, а можно ли при помощи QProcess выполнить например "beaty.jpg" чтоб в случае чего он просто его открыл в той программе с которой он ассоциируется?
bool QDesktopServices::openUrl ( const QUrl & url ) [static]
Записан
Иван4444
Гость
Re: Qprocess
«
Ответ #12 :
Октябрь 22, 2010, 13:24 »
Большое спасибо!
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...