本帖最后由 taotao5945 于 2013-05-18 05:46:14 编辑

解决方案 »

  1.   

    另外,copyrect的时候,注意rect大小,你拉伸了。
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
       jb1:HWND;
       bmp:TBitmap;
       wnd: cardinal;
       rec: TRect;
       BmpCanvas:TCanvas;
    begin
        jb1:=FindWindow(nil,'计算器');
        wnd:=jb1;
        GetWindowRect(wnd, rec);
        bmp := TBitmap.Create;
        bmp.Width :=rec.Right - rec.Left;
        bmp.Height :=rec.Bottom - rec.Top;
        bmp.PixelFormat := pf24bit;
        BmpCanvas:=TCanvas.Create;
        BmpCanvas.Handle:= getwindowdc(jb1);
        Bmp.Canvas.CopyRect(Rect(0,0,bmp.Width,bmp.Height),BmpCanvas,Rect(0,0,bmp.Width,bmp.Height));
        Image1.Picture.Assign(bmp);
        //bmp.SaveToFile('C:\1.bmp');
        bmp.Free;
        BmpCanvas.Free;
    end;
      

  3.   

    windows自带的计算器为什么叫企鹅的
      

  4.   

    用企鹅的快捷键CTRL+ALT+A抓的图!