var
    dc : HDC;
    rgn : HRGN;
begin
    dc := GetDC(0);
    Image1.Width := Screen.Width;      //!!!! 改变了 Width和 Height 也只能截原始大小
    Image1.Height := Screen.Height;
    with Image1.Canvas do
    begin
        rgn := CreateRectRgnIndirect(Image1.BoundsRect);
        SelectClipRgn(Handle,rgn);
        BitBlt(Handle,0,0,Screen.Width,Screen.Height,dc,0,0,SRCCOPY);
    end;
    DeleteObject(rgn );
    ReleaseDC(0,dc);
    bUseColor := False;
end;除非装一个大型图片,否则,截屏的范围总是原来的范围。Image1 在一个 ScrollBox 里。