Re: Подвисание процесса. Как это определить >?
От: NKZ  
Дата: 02.11.04 15:01
Оценка: +1
Здравствуйте, ShadowMan, Вы писали:

SM>Если кто знает, подскажите какой !!!функцией!!! или хотя бы по какому признаку TaskManager определяет состояние процесса: "Работает","Не отвечает" >?


здесь
Автор(ы): Александр Федотов
Дата: 03.11.2001
В статье рассматривается два метода, позволяющие
определить, что приложение зависло, т.е. перестало обрабатывать
сообщения.
... << RSDN@Home 1.1.4 beta 3 rev. 0>>
Подвисание процесса. Как это определить >?
От: ShadowMan  
Дата: 02.11.04 14:31
Оценка:
Если кто знает, подскажите какой !!!функцией!!! или хотя бы по какому признаку TaskManager определяет состояние процесса: "Работает","Не отвечает" >?

И ещё —
1.Список идентификаторов процесса узнаём : EnumProcesses
2.По идентификатору открываем процесс : OpenProcess и получаем handle на него
3.Потом уполучаем handle на модули процесса : EnumProcessModules (1-ый модуль — имя исполняемого файла)
4.Затем с помощью GetModuleBaseName получаем НАКОНЕЦ-ТАКИ имя этого процесса!!!

(так описано в SDK , так делаю и я)

Меня интересует — можно ли получить по имени (напр.: prog.exe) HANDLE на процесс ?
GetProcessImageFileName идеально мне подходит, НО работает только в XP

03.11.04 01:01: Перенесено из 'C/C++'
Re: Подвисание процесса. Как это определить >?
От: ilnar Россия  
Дата: 02.11.04 14:39
Оценка:
Здравствуйте, ShadowMan, Вы писали:

SM>Если кто знает, подскажите какой !!!функцией!!! или хотя бы по какому признаку TaskManager определяет состояние процесса: "Работает","Не отвечает" >?


он использует Performance Counters для получения инфы, там наверняка и имя процесса есть
а для определения "не отвечает" — эта тема как-то обсуждалась (может и не здесь)
Re[2]: Подвисание процесса. Как это определить >?
От: ShadowMan  
Дата: 02.11.04 18:32
Оценка:
Здравствуйте, NKZ,
Спасибо за помощь... теперь только стоит понять как поступать , если у приложения нет окна , а вункция определения по Thread' у не найдена!
Re[3]: Подвисание процесса. Как это определить >?
От: NKZ  
Дата: 03.11.04 09:05
Оценка:
Здравствуйте, ShadowMan, Вы писали:

SM>Спасибо за помощь... теперь только стоит понять как поступать , если у приложения нет окна , а вункция определения по Thread' у не найдена!


Если окна нет, то его надо создать, хотя бы невидимое. А как без окна
... << RSDN@Home 1.1.4 beta 3 rev. 0>>
Re: Подвисание процесса. Как это определить >?
От: Аноним  
Дата: 03.11.04 11:59
Оценка:
Здравствуйте, ShadowMan, Вы писали:

SM>Если кто знает, подскажите какой !!!функцией!!! или хотя бы по какому признаку TaskManager определяет состояние процесса: "Работает","Не отвечает" >?


Насколько я помню там есть ключ в реестре который задает временной интервал.
А определяется вроде бы по тому что окно определенное время не обрабатывает сообщения.
Об этом написано у Рихтера.
Re[4]: Подвисание процесса. Как это определить >?
От: ShadowMan  
Дата: 04.11.04 16:06
Оценка:
А есть ли хоть сколько-нибудь универсальные методы определения зависания процесса ??? именно процесса!!!
кстати, если окно невидимое, то к нему не всегда применимы методы определения зависания!!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.