![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сохранить desktop?
pumba © (2002-12-11 12:34:00)Мне нужно сохранить все, что есть на мониторе(в виде изображения) и записать это в файл. Как это сделать?
pumba (2002-12-11 14:53:00) [1]THANKS!!!!
Skier (2002-12-11 13:19:00) [2]procedure SaveDesktop(const AFileName : String);
var
ABitmap : TBitmap;
ADC : HDC;
begin
if AFileName = EmptyStr then Exit;
ABitmap := TBitmap.Create;
try
ABitmap.Width := Screen.Width;
ABitmap.Height := Screen.Height;
ADC := GetDC(GetDesktopWindow);
BitBlt(ABitmap.Canvas.Handle, 0, 0, Screen.Width, Screen.Height, ADC, 0, 0, SRCCOPY);
ReleaseDC(GetDesktopWindow, ADC);
ABitmap.SaveToFile(AFileName);
finally
ABitmap.Free;
end; //try
end;
Song (2002-12-11 13:10:00) [3]2Skier © (11.12.02 12:55)
А ReleaseDC() кто делать будет? или хрен с ним..? :)
Skier (2002-12-11 12:55:00) [4]procedure SaveDesktop(const AFileName : String);
var
ABitmap : TBitmap;
begin
if AFileName = EmptyStr then Exit;
ABitmap := TBitmap.Create;
try
ABitmap.Width := Screen.Width;
ABitmap.Height := Screen.Height;
BitBlt(ABitmap.Canvas.Handle, 0, 0, Screen.Width, Screen.Height, GetDC(GetDesktopWindow), 0, 0, SRCCOPY);
ABitmap.SaveToFile(AFileName);
finally
ABitmap.Free;
end; //try
end;
Карелин Артем (2002-12-11 12:49:00) [5]drin © (11.12.02 12:45) - а если это вызвать раз так 100-1000 утечки памяти и ресурсов не будет??
Song (2002-12-11 12:48:00) [6]GetDC(HWND_DeskTop) связываешь с TCanvas. Далее копируешь через BitBlt область в TCanvas и сохраняешь на диск. Тоже самое можно сделать через TCanvas.CopyRect(). Вариантов много.
drin (2002-12-11 12:45:00) [7]
function GetScreenImage: TBitmap;
begin
Result:=TBitmap.create;
Result.Width := Screen.Width;
Result.Height := Screen.Height;
BitBlt(Result.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,
GetDC(GetDesktopWindow), 0, 0, SRCCopy);
end;
Mad_Ghost (2002-12-11 12:44:00) [8]да, скажи плизз....
Keymaster (2002-12-11 12:39:00) [9]1) Нажимаем кнопку PrintScreen
2) Запускаем банальный MSPaint
3) Жмем меню "Edit -> Paste"
4) Что получилось - сохраняем в файл
если надо - могу сказать, как это
на Delphi сделать...