在Delphi中的采用cmSrcInvert 模式抓取屏幕图象的实现程序代码如下:
…………………………..
var
     bmp, difbmp: TBitmap;//两个用于保存屏幕图象的临时位图对象
R        : TRect;//用于保存抓取范围的一个Trect对象
tmp      : string;//用于保存压缩后的数据的变量
…………………..
CatchScreen(bmp, PixelFormat);//按指定的PixelFormat抓取全屏并将其存放于bmp中
difbmp := TBitmap.Create;
difbmp.Assign(bmp);//将bmp中的位图传递给difbmp
R := Rect(0, 0, difbmp.Width, difbmp.Height);//指定拷屏范围
difbmp.Canvas.CopyMode := cmSrcInvert;//设置拷贝模式为cmSrcInvert,非常重要
difbmp.Canvas.CopyRect(R, CurBmp.Canvas, R);//将当前图象与上一次的图象进行XOR运算,将结果位图存放于difbmp中,其中CurBmp是一个全局变量,存放的是上一次抓屏时的屏幕图象
CompressBitmap(difbmp, tmp);//将difbmp进行压缩,压缩后的数据存放于tmp中
CurBmp.Assign(bmp);//当前图象存入CurBmp,下一次抓屏时进行XOR运算使用