Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.034 c
1-1103716877
UVV
2004-12-22 15:01
2005.01.09
Время


1-1103759458
casper24
2004-12-23 02:50
2005.01.09
Электронно-Цифровая подпись... RSA/MD5...


4-1101228157
#Master#
2004-11-23 19:42
2005.01.09
Глобальная ловушка на клавиатуру


3-1102521643
Goga
2004-12-08 19:00
2005.01.09
Как получить выборку из MSAccess


14-1103565181
MacroDenS
2004-12-20 20:53
2005.01.09
Мобильник сошел с ума???





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский