Форум: "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.04 c