![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сканирование памяти [D6, Win2k]
Илайдж © (2003-02-11 12:13:00)Есть некий процесс, известен его handle
Как просканировать память, выделенную данному процессу.
Это нужно для мониторинга неких изменившихся значений.
Буду рад любым идеям.
BlackTiger (2003-02-11 15:08:00) [1]Может я ошибаюсь, но менеджер памяти рубанет тебя нафиг за попытку покопаться в "чужой" памяти. Если этот процесс сам не предоставляет память для других, то фиг ты туда залезешь.
Нужны всякие мутексы-шмутексы, файлы в памяти и тыды.
Слесарь Матерящийся (2003-02-11 12:46:00) [2]типа так:
var
he : PROCESS_HEAP_ENTRY;
msg: AnsiString;
begin
he.lpData := nil;
{ Перечисляем блоки памяти, выделенные процессу }
while HeapWalk(GetProcessHeap(),@he) do
if HeapValidate(GetProcessHeap(),0,he.lpData) then
begin
{ Анализируем содержимое структуры }
msg := "blockptr = " + IntToHex(integer(he.lpData),8) + ", length = " + IntToStr(he.cbData);
ListBox1.Items.Add(msg);
end;
end;
что-то в таком духе...
Илайдж (2003-02-11 12:30:00) [3]А нельзя ли поподробней? Может есть какой-то пример?
Слесарь Матерящийся (2003-02-11 12:17:00) [4]Знамо дело, HeapWalk() + HeapValidate()