Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как отследить закрытие процесса, хелп.... 
:(
    Опции темы
Partizan
Дата 13.11.2006, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

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



Приветы всем кто зашёл почитать и ответить в эту тему....

суть такова: запускаю процесс с помощью CreateProcess....например msword.exe...или helloworld.exe

вопрос: как динамически отследить закрытие приложения?


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
maxim1000
Дата 13.11.2006, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



можно попробовать WaitForSingleObject с его handle...


--------------------
qqq
PM WWW   Вверх
bugmenot
Дата 13.11.2006, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



И тебе привет =)

Вызови
GetExitCodeProcess(PI.hProcess, &dwExitCode);

Если
dwExitCode==STILL_ACTIVE

То процесс работает

Это ты имел в виду?
--------------------
доска объявленийвсе о горных велосипедах 
PM MAIL   Вверх
Partizan
Дата 13.11.2006, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

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



нет....не совсем то....
нужно чтобы как только закрывалось приложение вызванное через криэйтпросесс моё приложение узнавало об этом )

то есть периодический мониторинг состояния приложения не совсем подходит...но в конечном итоге, если другие варианты отсутствуют, придётся использовать именно его

Добавлено @ 18:47 
хуки юзать тоже не хотелось бы...


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Dude03
Дата 13.11.2006, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Partizan @  13.11.2006,  18:45 Найти цитируемый пост)
нет....не совсем то....
нужно чтобы как только закрывалось приложение вызванное через криэйтпросесс моё приложение узнавало об этом )

то есть периодический мониторинг состояния приложения не совсем подходит...но в конечном итоге, если другие варианты отсутствуют, придётся использовать именно его 

maxim1000  тебе ответил же smile 
Пока процесс выполняется связанным с ним объект находится в занятом состоянии, значит WaitForSingleObject(hProcess) будет ожидать освобождения объекта. Когда процесс завершится - объект перейдет в свободное состояние и WaitForSingleObject вернет управление.
PM MAIL   Вверх
Partizan
Дата 13.11.2006, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

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



надо чтоб вызывающее приложение как ни в чём не бывало продолжало работу....
ну лан...хотел сча написать про тайм аут.....увидел что параметр может быть INFINITE.....
а ожидание наверное в отдельный поток придётся выносить....


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
BUGOR
Дата 14.11.2006, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ну как вариант хукай в этом процессе ZwTerminateProcess и тогда будет 100% контроль закрытия процесса, но естественно закрытия не извне, чтобы контролировать закрытие извне нужен глобальный хук на эту функцию.


--------------------
Живу недоумевая, всё время хочу понять...
http://hunger.ru 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

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


 




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


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

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