Вниз
Скачать: CL | DM;

Сканирование памяти   Найти похожие ветки 

 
Илайдж   (2003-02-11 12:13) [0]

Есть некий процесс, известен его handle
Как просканировать память, выделенную данному процессу.

Это нужно для мониторинга неких изменившихся значений.

Буду рад любым идеям.


 
Слесарь Матерящийся ©   (2003-02-11 12:17) [1]

Знамо дело, HeapWalk() + HeapValidate()


 
Илайдж   (2003-02-11 12:30) [2]

А нельзя ли поподробней? Может есть какой-то пример?


 
Слесарь Матерящийся ©   (2003-02-11 12:46) [3]

типа так:

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;

что-то в таком духе...


 
BlackTiger   (2003-02-11 15:08) [4]

Может я ошибаюсь, но менеджер памяти рубанет тебя нафиг за попытку покопаться в "чужой" памяти. Если этот процесс сам не предоставляет память для других, то фиг ты туда залезешь.

Нужны всякие мутексы-шмутексы, файлы в памяти и тыды.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.009 c
3-63481
Compiler
2003-02-04 14:30
2003.02.20
События к Recordset в ADO


4-63908
dinn
2003-01-09 01:25
2003.02.20
align justify and RichEdit


1-63609
Новенький в Делфи
2003-02-11 13:15
2003.02.20
Как скопировать содержимое TPaintBox в TImage?


3-63506
alenka
2003-01-31 02:54
2003.02.20
DBGridEh


1-63640
Separator
2003-02-11 18:10
2003.02.20
a*x^3 + b*x^2 + d*x + c = 0




   Наверх