Главная страница
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.019 c
7-43924
SkySlider
2003-12-22 13:14
2004.03.14
Обращение к принтеру


6-43743
Scordion
2004-01-03 19:17
2004.03.14
Посоветуйте компонент для скачивания файлов!


1-43521
@G
2004-02-28 13:37
2004.03.14
Как свернуть программу в <B>Tray</B>


1-43640
CRACKISH
2004-03-02 10:51
2004.03.14
Сортировка ListView в режиме vsReport при нажатии на заголовок


3-43395
va
2004-02-17 18:11
2004.03.14
репликация в interbase