当前位置:编程学习 > Delphi >>

抓获全屏

 

根据Windows GDI与设备无关的特点,利用BitBlt或StretchBlt函数将显示设备上的位数据传输到目标设备上,然后在目标设备上创建兼容位图:

SourceDC:=CreateDC(′DISPLAY′,′′,′′,nil);{创建源设备环境,DISPLAY为显示器}

DestDC:=CreateCompatibleDC(SourceDC);

{创建和SourceDC兼容的目标设备环境}

BHandle:=CreateCompatibleBitmap(SourceDC,Screen.Width,Screen.Height) ;

{创建一个和SourceDC兼容的内存设备环境,并返回其设备句柄}

SelectObject(DestDC,BHandle);

BitBlt(DestDC,0,0,Screen.Width,Screen.Height,SourceDC,0,0,SRCCOPY) ;

{抓图}

Bitmap:=TBitmap.Create;

{Bitmap为TBitmap类型}

Bitmap.Handle:=BHandle;

Bitmap.SaveToStream(′C:My DocumentsFullScreen.bmp′) ;{保存到文件}

DeleteDC(DestDC) ;

ReleaseDC(BHandle,SourceDC) ;

{释放设备环境}

以上程序中,各设备环境的数据类型为Integer。

 

补充:软件开发 , Delphi ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,