屏幕录像简单代码
unit ScreenShot;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, JPEG,
StdCtrls, Buttons, ExtCtrls;
type
TForm1 = class(TForm)
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Image1: TImage;
Image2: TImage;
Label1: TLabel;
Label2: TLabel;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
Stream: TMemoryStream;
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.BitBtn1Click(Sender: TObject);
var
winHWND: HWND;
WinDC: HDC;
Rect: TRect;
Bitmap : TBitmap;
begin
WinHWND := GetDesktopWindow ();
WinDC := GetDC (WinHWND);
GetWindowRect (WinHWND, rect);
Bitmap := TBitmap.Create;
Bitmap.Width := rect.right-rect.left;
Bitmap.Height := rect.Bottom-rect.Left;
BitBlt (Bitmap.canvas.handle, 0, 0, Bitmap.Width, Bitmap.Height, WinDC, 0, 0, SRCCOPY);
ReleaseDC (WinHWND, WINDC);
Image1.Picture.Bitmap := Bitmap;
Stream := Tmemorystream.create;
Bitmap.SaveToStream (Stream);
Stream.Position := 0;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
Image2.Picture.Bitmap.LoadFromStream (Stream);
Stream.Free;
end;
end.