谁有屏幕捕捉的源码,谢谢各位大哥了..(50分)

  • 主题发起人 主题发起人 tobbs
  • 开始时间 开始时间
T

tobbs

Unregistered / Unconfirmed
GUEST, unregistred user!
急啊。。。。。。。。。。。。。。
 
var
bmp: TBitmap;
dc: HDC;
begin
with image1.picture.bitmap do
begin
width := screen.width; height := screen.height;
dc := createdc('DISPLAY', nil, nil, nil);
bitblt(canvas.handle, 0, 0, width, height, dc, 0, 0, SRCCOPY);
deletedc(dc);
end;
end;
end;
 
啊,那,捕捉 当前活动窗口 图象的源码有码?楼上的是捕捉全屏的吧。
 
var
dc: HDC;
h: THandle;
begin
h := getforegroundwindow;
dc := getdc(h);
.... // 同上捕捉方式
releasedc(h, dc);
end;
 
如何捕抓panel中内容;将panel存为图片
 
完整程序:
http://kuga.51.net/download/files/snag.zip
 
bitblt(form1.canvas.handle, 0, 0, width, height, Getdc(0), 0, 0, SRCCOPY);
一句话搞定。
 
bitblt(form1.canvas.handle, 0, 0, width, height, Getdc(0), 0, 0, SRCCOPY);

速度快,够简单爽。
 
//捕捉 当前活动窗口 图象
那还不简单,先 GetForegroundWindow 取得活动窗口句柄
然后获取其位置和大小,然后替换楼上几位所说的 BitBlt
函数中,从第二个参数开始的四个参数,即可。
 
var ar :TRect;
begin
GetWindowRect(GetForegroundWindow ,ar);
bitblt(form1.canvas.handle, 0, 0, ar.Right -ar.Left ,ar.Bottom -ar.Top , Getdc(0), ar.Left , ar.Top, SRCCOPY);
搞定。
 
多人接受答案了。
 

Similar threads

后退
顶部