话题1114093的标题是: 谁有屏幕捕捉的源码,谢谢各位大哥了.. (50分)
分类:图形图象 tobbs (2002-05-21 12:52:00)
急啊。。。。。。。。。。。。。。
Pearl. (2002-05-21 13:01:00)
var
bmp: TBitmap;
dc: HDC;
begin
with image1.picture.bitmapdo
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;
tobbs (2002-05-21 13:13:00)
啊,那,捕捉 当前活动窗口 图象的源码有码?楼上的是捕捉全屏的吧。
Pearl. (2002-05-21 14:08:00)
var
dc: HDC;
h: THandle;
begin
h := getforegroundwindow;
dc := getdc(h);
.... // 同上捕捉方式
releasedc(h, dc);
end;
laohe (2002-08-09 17:47:00)
如何捕抓panel中内容;将panel存为图片
gxcooo (2002-08-09 17:51:00)
完整程序:
http://kuga.51.net/download/files/snag.zip
bigroute (2002-08-09 18:03:00)
bitblt(form1.canvas.handle, 0, 0, width, height, Getdc(0), 0, 0, SRCCOPY);
一句话搞定。
begin
Delphi (2002-08-09 22:50:00)
bitblt(form1.canvas.handle, 0, 0, width, height, Getdc(0), 0, 0, SRCCOPY);
速度快,够简单爽。
beta (2002-08-10 4:19:00)
//捕捉 当前活动窗口 图象
那还不简单,先 GetForegroundWindow 取得活动窗口句柄
然后获取其位置和大小,然后替换楼上几位所说的 BitBlt
函数中,从第二个参数开始的四个参数,即可。
bigroute (2002-08-10 13:16:00)
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);
搞定。
tobbs (2002-10-11 16:13:00)
多人接受答案了。
begin
Delphi-10,beta-5,bigroute-5,gxcooo-5,laohe-5,Pearl.-20,的回答最终被接受。