Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.09;
Скачать: CL | DM;

Вниз

Мониторинг процессов   Найти похожие ветки 

 
NetDigger ©   (2004-11-23 08:46) [0]

Здравствуйте, уважаемые!
Написал я монитор процессов - выводит какие процессы выполняются сейчас, их ИДы, родительские ИДы, сколько они уже работают, файлы, окна и т.д. Обновление пока делаю по таймеру - т.е. каждый раз снэпшот и пошел сравнивать - если такого ИДа уже нет, то значит процесс умер и следовательно из списка нужно его убрать. Замечательно! Только вот работает долговато - возможны ли альтернативы. Кроме того, выводится это все дело в виде дерева, чтобы можно было понять, какой процесс что породил =)Т.е. если пользователь открыл какой-либо узел, то по срабатыванию таймера дерево перерисовывается, естественно со свернутыми узлами - тоже проблемка. Если записывать имена узлов, которые открыты, а при перерисовки сравнивать и открывать? И еще: можно ли какими-нибудь средствами вывести счетчики производительности процесса: сколько байтов-ввод/вывод, количество чтений и т.д, т.е. аналог диспетчера задач NT. Спросите зачем нужно - да вот озадачили курсовым =) Базовые задания сделаны, но хочется чего-то большего и чистого - для собственного развития.
С уважением.


 
Xaker ©   (2004-11-23 09:10) [1]

NetDigger ©   (23.11.04 8:46)
подскажи, как

> сколько они уже работают, файлы, окна и т.д.

делал ?
- выложи код плиз .. (если не жалко)


 
NetDigger ©   (2004-11-23 09:28) [2]

Выложу...частично...как только проект закончу. Если не секрет - на что он тебе? =) Уж не та же ли самая цель?


 
Xaker ©   (2004-11-23 09:47) [3]

NetDigger ©   (23.11.04 9:28) [2]
Выложу...частично...
мне интересен не интерфейс, а сами функции добывания инфы о процессах и как они вызываются (типы переменных, обработка результата)

как только проект закончу
ок, подождём

Если не секрет - на что он тебе? =) Уж не та же ли самая цель?
нет, такой цели у меня нет, просто мне интересны функции работы с процессами, кто какие юзает и как ;))

по сабжу - юзай Process Explorer от Русиновича - он может всё


 
Digitman ©   (2004-11-23 10:00) [4]


> NetDigger ©   (23.11.04 08:46)  


> Только вот работает долговато - возможны ли альтернативы


снэпшот - нормальный инструмент для Win9x-линейки систем, но для НТ-линейки следует пользовать либо EnumProcesses() в составе psapi.pas либо напрямую вызывать NtQuerySystemInformation/NtQueryInformationProcess из состава ntdll.dll

кр.того намного эффективней будет событийный мониторинг процессов средствами ф-ции PsNotifyCreateProcess(), вызываемой в драйвере режима ядра .. исх.текст такого простейшего монитор-драйвера и готовые примеры доступны на wasm.ru


 
Игорь Шевченко ©   (2004-11-23 10:21) [5]

http://www.schevchenko.net.ru/SRC/QuerySystemInformation_60.zip


 
NetDigger ©   (2004-11-23 11:23) [6]

Спасибо, уважаемый Игорь! Но подобное уже есть... Мне нужно, чтобы при закрытии процесса(ВинВорд, к примеру) автоматически обновлялся список процессов - может событие есть какое? Перехват ставить. И еще как получить хендлы всех окон (в том числе компонентов, т.к. сказать третий круг окон) и инфу по ним?


 
Digitman ©   (2004-11-23 11:52) [7]


> NetDigger ©   (23.11.04 11:23) [6]


> чтобы при закрытии процесса.. автоматически
> обновлялся список процессов


список твой собственный ? алгоритм, формирующий этот список, тоже твой ? ну так кто же кроме тебя самого сделает это обновление ?

а событие, извещающее о создании/уничтожении ЛЮБОГО процесса в системах на НТ-платформе есть , но задействовано оно может быть только на 0-м уровне привелегий, например, вызовом PsNotifyCreateProcess() (ф-ция устанавливает адрес нужной callback-ф-ции, которая будет вызываться всякий раз при наступлении события) в контексте драйвера режима ядра.


 
Piter ne doma   (2004-11-23 13:29) [8]

>но для НТ-линейки следует пользовать

а чем это SnapShot для НТ не подходит?


 
NetDigger ©   (2004-11-24 08:24) [9]


> список твой собственный ? алгоритм, формирующий этот список,
> тоже твой ? ну так кто же кроме тебя самого сделает это
> обновление ?

Резонно =)
0-й уровень привилегий - т.е. придется писать драйвер, а правильно понимаю.
2Piter ne doma - зачем использовать снэпшот, если есть более удобные методы?Не спорю - он работает и на НТях. Пользовал его сначала, после советов - заменил на NTQuerySystemInformation - удобнее. Хотя пришлось ставить проверку на систему, и все равно реализовать снэпшоты для Вин98 =) Но тут уже просто идут пробы пера для дальнейших разработок...


 
Digitman ©   (2004-11-24 08:31) [10]


> NetDigger ©   (24.11.04 08:24) [9]


> 0-й уровень привилегий - т.е. придется писать драйвер, а
> правильно понимаю


для НТ - да, правильно понимаешь, хотя ничего сложного в этом нет, тем более что демо-код драйвера и оболочки к нему на wasm.ru имеется

для Маздая же переход на PL0 выполняется и безо всякого драйвера без особых усилий, но ф-ции PsNotifyCreateProcess() там нет, и вряд ли можно подыскать ей недокум.аналог


 
NetDigger ©   (2004-11-24 08:55) [11]

Сенкс, что-нибудь будем думать...



Страницы: 1 вся ветка

Текущий архив: 2005.01.09;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.083 c
1-1103611698
Atrion
2004-12-21 09:48
2005.01.09
Окантовка в ComboBox


1-1103487729
redlord
2004-12-19 23:22
2005.01.09
tstringgrid смена ячейки для ввода


1-1103716877
UVV
2004-12-22 15:01
2005.01.09
Время


8-1096738826
miek
2004-10-02 21:40
2005.01.09
GLScene: изменение материалов


1-1103698035
WondeRu
2004-12-22 09:47
2005.01.09
Как поменять цвет текста в консоли?