中国开发网: 论坛: 程序员情感CBD: 贴子 181168
pcplayer: 抓图部分的代码经过测试发现对CPU的消耗少。
function TForm1.CapScreen_1: TBitmap;
var
ADC:HDC;
begin
FScreenBmp.Width:=Screen.Width;
FScreenBmp.Height:=Screen.Height;

ADC:=GetDC(0);
try
bitblt(FScreenBmp.canvas.handle,0,0,FScreenBmp.width,FScreenBmp.height,ADC,0,0,srccopy);
finally
ReleaseDC(0,ADC);
end;
Result:=FScreenBmp;
end;

为避免不停地Create/Free 那个TBitmap,这里的 FScreenBmp:TBitmap 是在程序一开始就Create好了的。

如果只运行这段代码,CPU并没跑多快。但只要把 FScreenBmp.SaveToStream(MyStream) 这段代码加上去,CPU立即跑到100%

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录