IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Мониторинг процессов, Простейшие действия с процессами
сообщение
Сообщение #1


Ветеран Броуновского Движения
***

Группа: Пользователи
Сообщений: 281
Пол: Мужской
Реальное имя: Сергей

Репутация: -  0  +


Как сделать, так что бы в ListBox можно было бы отразить процессы, происходящие в данный момент в системе и при выборе из списка специальной кнопкой их закрывать? Примерно догадываюсь, как это сделать, но как формализовать не додумаюсь? Знаю, что надо сделать снимок системы через SnapShot, подключить модуль Thelp32, а как дальше?

Сообщение отредактировано: Atreides -


--------------------
Отрадно спать, отрадней камнем быть, О, этот век, преступный и постыдный, Не жить, не чувствовать - удел завидный. Прошу, молчи, не смей меня будить!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Ветеран Броуновского Движения
***

Группа: Пользователи
Сообщений: 281
Пол: Мужской
Реальное имя: Сергей

Репутация: -  0  +


Вот нашел тут одну ссылку, но она на C, а как перегнать на Delphi?
Цитата
Мониторинг выполняющихся в системе процессов – основа всех приложений для наблюдения за работой информационных систем и их пользователей. Для отслеживания появления в системе новых приложений или завершения выполнявшихся можно использовать два способа:
1. периодическое выполнение снимка состояния системы и его анализ, для чего приложение, рассмотренное в п.1.1.1, подключается к обработчику прерываний таймера. Это просто, но неэффективно – приложения не запускаются и не завершаются то и дело.
2. подключение к процедуре запуска и завершения процессов с помощью функции ядра PsSetCreateProcessNotifyRoutine(), описанной в Windows 2000 DDK, путем регистрации функции обратного вызова. Это не так просто, как хотелось бы, но более эффективно.

1.4 Функция NtQuerySystemInformation

Различная системная информация доступна через функцию NtQuerySystemInformation.
Описание приведено в стиле С для интересующихся.
NTSTATUS  NtQuerySystemInformation(
IN SYSTEM_INFORMATION_CLASS SystemInformationClass,
IN OUT PVOID SystemInformation,
IN ULONG SystemInformationLength,
OUT PULONG ReturnLength OPTIONAL
);
SystemInformationClass указывает тип информации, которую необходимо получить, SystemInformation - это указатель на результирующий буфер,
SystemInformationLength - размер этого буфера,
ReturnLength – количество записанных байт.
Для перечисления запущенных процессов следует установить в параметр SystemInformationClass значение SystemProcessesAndThreadsInformation.
#define SystemInformationClass 5
Возвращаемая структура в буфере SystemInformation:
typedef struct _SYSTEM_PROCESSES { 
ULONG NextEntryDelta;
ULONG ThreadCount;
ULONG Reserved1[6];
LARGE_INTEGER CreateTime;
LARGE_INTEGER UserTime;
LARGE_INTEGER KernelTime;
UNICODE_STRING ProcessName;
KPRIORITY BasePriority;
ULONG ProcessId;
ULONG InheritedFromProcessId;
ULONG HandleCount;
ULONG Reserved2[2];
VM_COUNTERS VmCounters;
IO_COUNTERS IoCounters; // только Windows 2000
SYSTEM_THREADS Threads[1];
} SYSTEM_PROCESSES, *PSYSTEM_PROCESSES;


--------------------
Отрадно спать, отрадней камнем быть, О, этот век, преступный и постыдный, Не жить, не чувствовать - удел завидный. Прошу, молчи, не смей меня будить!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Atreides   Мониторинг процессов   1.03.2007 19:40
volvo   DRKB3 -> Системные функции и WinAPI -> Windo…   1.03.2007 19:50
Atreides   У меня только версия 2.3 и там есть пример просмот…   2.03.2007 21:04
volvo   // Функция завершения процесса - проверено под XP …   2.03.2007 21:51
Atreides   Зачем править эту строку: Pr_Names [Num] := …   3.03.2007 13:31
volvo   ProcessTreminate взята из DRKB 2.3 - там есть комм…   3.03.2007 14:42
Atreides   А как сделать, что бы после нажатия кнопки заверше…   7.03.2007 15:21
-Volvo-   Добавь вызов Button1Click, чтобы заново сгенериров…   7.03.2007 15:35
Atreides   Как реализовать, чтобы для выбранного процесса из …   11.03.2007 20:40
Atreides   При помощи средств Delphi можно узнать, сколько вр…   12.03.2007 23:18
Atreides   Вот нашел тут одну ссылку, но она на C, а как пере…   14.03.2007 16:54
volvo   А что, собственно, там перегонять? Описания структ…   14.03.2007 17:05
Atreides   С помощью NtQuerySystemInformation, можно получить…   14.03.2007 17:11
volvo   Посмотри вот эту тему, там Rouse_ выкладывал непло…   14.03.2007 17:21
Iren   У меня подобное задание: нужно разработать приложе…   15.03.2007 22:33
Atreides   А как сделать, что бы можно было выбрать процесс и…   18.03.2007 16:48
Atreides   Написал передачу параметров процессов в StringGrid…   22.03.2007 23:49
Atreides   Доделал я это задание (получить список выполняющих…   3.04.2007 22:40
Atreides   Может, кто знает, как получить имя файла и его вер…   15.04.2007 21:56


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 18:52
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name