![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Screenshot [D6, WinXP]
defen © (2004-04-19 15:07:00)Здравствуйте Уважаемые Мастера! Подскажите пожалуйста можно-ли програмно сделать SCREENSHOT? И если можно то как?
VMcL (2004-04-21 10:29:00) [1]>>Sanek_metaller © (21.04.04 00:16) [4]
Голова у тебя, чтобы наушники носить?
procedure GetScrShot(const AImage: TImage = nil);
var
Win: HWND;
Bmp: TBitmap;
DC: HDC;
R: TRect;
begin
Win := GetDesktopWindow;
Bmp := TBitmap.Create;
with Bmp do
try
PixelFormat := pf24bit;
DC := GetWindowDC(Win);
try
GetWindowRect(Win, R);
Width := R.Right - R.Left;
Height := R.Bottom - R.Top;
BitBlt(Canvas.Handle, 0, 0, Width, Height,
DC, 0, 0, SRCCOPY);
finally
ReleaseDC(Win, DC);
end;
if AImage <> nil then
AImage.Picture.Bitmap.Assign(Bmp);
finally
Free;
end;
end;
Sanek_metaller (2004-04-21 00:16:00) [2]А можно ли сделать так,чтобы скришот в TImage вставить,не сохраняя его на винт?
OSokin (2004-04-20 20:07:00) [3]Можно еще вызвать int 5h(PrintScreen) и вставить картинку из буфера.
defen (2004-04-19 23:56:00) [4]Огромное спасибо!
VMcL (2004-04-19 17:35:00) [5]procedure GetScrShot;
var
Win: HWND;
Bmp: TBitmap;
DC: HDC;
R: TRect;
begin
Win := GetDesktopWindow;
Bmp := TBitmap.Create;
with Bmp do
try
PixelFormat := pf24bit;
DC := GetWindowDC(Win);
try
GetWindowRect(Win, R);
Width := R.Right - R.Left;
Height := R.Bottom - R.Top;
BitBlt(Canvas.Handle, 0, 0, Width, Height,
DC, 0, 0, SRCCOPY);
finally
ReleaseDC(Win, DC);
end;
SaveToFile('C:\_ScrShot.bmp');
finally
Free;
end;
end;