Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сканирование памяти [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()


Наверх

Титульная страница Поиск, карта сайта Написать письмо