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

Как получить картинку из чужой памяти?   Найти похожие ветки 

 
electhp   (2004-01-08 08:22) [0]

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

function GetMemoryTotalPhys: DWord;
var
memStatus: TMemoryStatus;
begin
memStatus.dwLength := sizeOf (memStatus);
GlobalMemoryStatus(memStatus);
Result := memStatus.dwTotalPhys;
end;


Затем я пытаюсь искать указатель, инкрименцируя его значение начиная от нуля и сравнивая со своей картинкой, но при попытке читать чужую память получаю ошибку:

procedure TForm1.Button1Click(Sender: TObject);
var
Bm: TBitmap;
pBm: ^TBitmap;
Pos, All: longInt;
begin
All:= GetMemoryTotalPhys;
Edit1.Text:= IntToStr(All);
bm:= TBitmap.Create;
bm:= Image1.Picture.Bitmap;
pBm:= 0;
// pBm:= @Bm;
for Pos := 1 to All Do
Begin
Inc(pBm);
Edit2.Text:= IntToStr(Pos);
Edit2.Repaint;
if pBm^ = Bm Then
Begin // Ошибку получаю тут, при сравнении
Image2.Picture.Bitmap:= pBm^;
Break;
End;
End;
end;


Это вообще говоря все к чему я пришел, еще хотелось бы узнать как получить адреса памяти выделенной конкретной программе, что бы сократить время поиска.


 
Unax ©   (2004-01-08 10:35) [1]

Ты не можешь просто так читать память чужого процесса, да и размер совсем совсем не тот ты определяешь. Этот код полный бред.


 
YuRock ©   (2004-01-08 10:36) [2]

Советую вкорне изменить способ получения этой картинки, т.к. само по себе выражение "получить TBitmap из памяти чужого процессора" (т.е. чужой объект) - это по меньшей мере сложнейшая задача.
Которая если и выполнима, то только ради примера для учебников :))


 
YuRock ©   (2004-01-08 10:37) [3]

... В [2] заменить слово "процессора" на "процесса", конечно.



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

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



Память: 0.45 MB
Время: 0.016 c
1-43607
Kyrt
2004-03-03 02:41
2004.03.14
DLL


1-43513
Chapha
2004-02-28 21:54
2004.03.14
СHM


1-43679
3asys
2004-03-01 18:00
2004.03.14
Реализация Object TreeView


1-43474
JIruaasgyy
2004-02-29 13:33
2004.03.14
Изменение ширины фиксированной колонки в StringGrid


1-43438
malkolinge
2004-03-01 13:07
2004.03.14
Указатель за витруальный метод предка.




   Наверх