找了个代码,供参考
http://www.delphibbs.com/delphibbs/dispq.asp?LID=2050123
标题是: 如何截取当前窗口为图片 (100分)
--------------------------转自网络
procedure TForm1.Timer1Timer(Sender: TObject);
var
Bild:TBitmap;
c:TCanvas;
r,t:TRect;
h:THandle;
ExeFilePath:string;
begin
ExeFilePath:=ExtractFilePath(Application.ExeName);
c:=TCanvas.Create;
c.Handle:=GetWindowDC(GetDesktopWindow);
//获得当前活动窗口的句柄
h:=GetForeGroundWindow;
Bild:=TBitmap.Create;
if h<>0 then
//结构t保存该窗口的左上角和右下角的坐标值(相对于屏幕左上角)
GetWindowRect(h,t);
try
r:=Rect(0,0,t.Right-t.Left,t.Bottom-t.Top);
Bild.Width:=t.Right-t.Left;
Bild.Height:=t.Bottom-t.Top;
Bild.Canvas.CopyRect(r,c,t);
//抓屏结果保存在与EXE相同目录下
Bild.SaveToFile(ExeFilePath+'screen.bmp');
finally
Bild.Free;
end;
end;
--------------------------------
我喜欢下面这种
ActiveWindow:=GetActiveWindow;
DC:=GetWindowDC(ActiveWindow);
GetWindowRect(ActiveWindow,Rect);
Bitblt(Image1.Canvas.Handle,0,0,Image1.Width,Image1.Height,DC,0,0,SRCCOPY);
ReleaseDC(ActiveWindow,DC);
[
][
]