Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.14;
Скачать: 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 вся ветка

Текущий архив: 2004.03.14;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.017 c
14-43819
Кен
2004-02-19 03:16
2004.03.14
Куда будут дальше развиваться DVD-приводы ? Уже сейчас за 100 с


3-43400
race1
2004-02-09 13:08
2004.03.14
базы-файлы


1-43556
luzhansky
2004-02-27 17:52
2004.03.14
QReport Delphi 5


6-43718
Net_Prosto
2003-12-05 19:42
2004.03.14
Как разорвать соединение с интернетом?


14-43847
Sergey13
2004-02-17 09:38
2004.03.14
Глюк или фича? Копирование файлов.