![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как мне отследить изменение числа процессов в системе?
__max__ © (2005-01-13 11:00:00)Как мне отследить изменение числа процессов в системе? Есть варианты такие: 1) Создать таймер и с каким-либо интервалом получать имена процессов с помощью ф-й Process32First, Process32Next 2) Использовать хук на WH_CALLWNDPROC или WH_CALLWNDPROCRET. Процедура вроде такой:
LRESULT CALLBACK WndRetProc (int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode < 0)
return CallNextHookEx (hWndRetHook, nCode, wParam, lParam);
PCWPSTRUCT msg = (PCWPSTRUCT)lParam;
if (msg->message == WM_CREATE)
{
<...>
}
return 1;
}
Но это плохой вариант так как при каждом создании не только главного диалога окна но и любого другого вызывается эта функция.
Есть ли у кого-нибудь предложения по моему вопросу?
Digitman (2005-01-13 12:58:00) [1]
> __max__
если подходить к ответу на вопрос ч.н. "в лоб" (т.е. как заставить саму ОС оперативно извещать прикл.задачу об изменениях в списке процессов), то без драйвера режима ядра не обойтись (см. соотв.статью и пример на wasm.ru)
иначе - см.
Игорь Шевченко (2005-01-13 11:18:00) [2]Создать таймер и перечислять процессы - проще всего. Task Manager так и делает.