procedure TForm1.Button1Click(Sender: TObject);
var bitmap:tbitmap;
    canva:tcanvas;
    dc:hdc;
begin
   bitmap:=tbitmap.Create ;
   canva:=tcanvas.Create ;
    dc:=getdc(0);
    bitmap.Width:=screen.Width ;
    bitmap.Height:=screen.Height ;
    canva.Handle:=dc;
    bitmap.Canvas.CopyRect(rect(0,0,screen.Width,screen.Height),canvas,rect(0,0,screen.Width,screen.Height));
    image1.Picture.Bitmap:=bitmap;
    canvas.Free;
    bitmap.Free;
    deletedc(dc);
end;

解决方案 »

  1.   

    dc = GetDC(0); //就是取得桌面的DcCanvas.handle=dc; //现在canvas 对应的是桌面的图象了 bitmap.Canvas.CopyRect(rect(0,0,screen.Width,screen.Height),canvas,rect(0,0,screen.Width,screen.Height));
    //就是把整个桌面复制到 bitmap中image1.Picture.Bitmap:=bitmap;
    //把bitmap中的图象copy到image1上显示出来
    整段代码的作用就是拷贝整个桌面,并在image1上显示出来
      

  2.   

    canvas.Free;多了一个"S"
    应该是canva.free;其实就这么简单