那位大虾给一个抓屏示例?越快越好(200分)

  • 主题发起人 孤单枪手
  • 开始时间

孤单枪手

Unregistered / Unconfirmed
GUEST, unregistred user!
那位大虾给一个抓屏示例?越快越好
 
如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Timer1: TTimer;
Button2: TButton;
Save1: TSaveDialog;
Button3: TButton;
Panel1: TPanel;
Image1: TImage;
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
implementation
{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.WindowState:=wsMinimized;
Form1.hide;
timer1.enabled:=true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
Fullscreen:Tbitmap;
FullscreenCanvas:TCanvas;
dc:HDC;
begin
timer1.Enabled:=false;
Fullscreen := TBitmap.Create;
Fullscreen.Width := screen.width;
Fullscreen.Height := screen.Height;
DC := GetDC (0);
FullscreenCanvas := TCanvas.Create;
FullscreenCanvas.Handle := DC;
Fullscreen.Canvas.CopyRect (Rect(0, 0, screen.Width, screen.Height), fullscreenCanvas,Rect (0, 0, Screen.Width, Screen.Height));
FullscreenCanvas.Free;
ReleaseDC (0, DC);
image1.picture.Bitmap:=fullscreen;
fullscreen.free;
button2.enabled:=true;
Form1.WindowState:=wsNormal;
Form1.show;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if save1.Execute then
begin
image1.Picture.SaveToFile(save1.filename+'.bmp');
button2.Enabled :=false;
end;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
close;
end;
end.
 
来晚了!
 
Bitmap:= TBitmap.Create; //创建一个BITMAP来存放图象
Bitmap.Width := screen.width;
Bitmap.Height := screen.Height;
DC := GetDC (0); //取得屏幕的 DC,参数0指的是屏幕
BitmapCanvas := TCanvas.Create; //创建一个CANVAS对象
BitmapCanvas.Handle := DC;
Bitmap.Canvas.CopyRect(Rect (0, 0, screen.Width, screen.Height), BitmapCanvas,Rect (0, 0, Screen.Width, Screen.Height));
//把整个屏幕复制到BITMAP中
BitmapCanvas.Free;//释放CANVAS对象
ReleaseDC (0, DC);
Bitmap.SaveToFile('c:/Good.bmp');
Bitmap.free;
 
等我写好了 楼上早帖完了啊 唉 效率成问题
 
最关键的一句
GetDC (0);
 
多谢各位!
 

Similar threads

顶部