| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > Мониторинг процессов |
| Автор: NetDigger 23.11.2004, 08:43 |
| Здравствуйте, уважаемые! Написал я монитор процессов - выводит какие процессы выполняются сейчас, их ИДы, родительские ИДы, сколько они уже работают, файлы, окна и т.д. Обновление пока делаю по таймеру - т.е. каждый раз снэпшот и пошел сравнивать - если такого ИДа уже нет, то значит процесс умер и следовательно из списка нужно его убрать. Замечательно! Только вот работает долговато - возможны ли альтернативы. Кроме того, выводится это все дело в виде дерева, чтобы можно было понять, какой процесс что породил =)Т.е. если пользователь открыл какой-либо узел, то по срабатыванию таймера дерево перерисовывается, естественно со свернутыми узлами - тоже проблемка. Если записывать имена узлов, которые открыты, а при перерисовки сравнивать и открывать? И еще: можно ли какими-нибудь средствами вывести счетчики производительности процесса: сколько байтов-ввод/вывод, количество чтений и т.д, т.е. аналог диспетчера задач NT. Спросите зачем нужно - да вот озадачили курсовым =) Базовые задания сделаны, но хочется чего-то большего и чистого - для собственного развития. С уважением. |
| Автор: p0s0l 23.11.2004, 21:24 |
| Функции счётчиков в NT'ях - гляди названия, которые начинаются на Pdh... Или же через реестр... Про дерево - ты делаешь полную очистку, потом заполнение дерева. Лучше не делай очистку, а когда добавляешь нод в дерево, смотри, есть ли уже нод с таким названием, если есть, то просто обнови инфу у него. Можно вопрос: как ты узнаешь, какие файлы юзает процесс ? Или у тебя под файлами имеется в виду просто загруженные модули (DLL-ки) ? |
| Автор: NetDigger 24.11.2004, 08:00 |
| Хехе, да именно это я и имел в виду |