webbrowser区域截图如何实现
我用的下面的过程 可是不行 这个虽然句柄我写的是webb的句柄 但是截图 还是 屏幕的截图
求具体怎么写代码 我希望是 webb不在最前的时候 也可以截图到webb上面的区域坐标 感谢
procedure snapscreenzd( swj:string ; a,b,c,d:Integer);
var
bmpscreen:Tbitmap;
jpegscreen:Tjpegimage;
FullscreenCanvas:TCanvas;
dc:HDC;
sourceRect, destRect: TRect;
begin
try
//dc:=///GetWindow(GetWindow(form1.WebBrowser1.Handle, GW_CHILD), GW_CHILD);
dc:=getdc(GetWindow(GetWindow(form1.WebBrowser1.Handle, GW_CHILD), GW_CHILD));
fullscreencanvas:=Tcanvas.Create;
fullscreencanvas.Handle:=dc;
bmpscreen:=Tbitmap.create;
bmpscreen.Width :=c-a;
bmpscreen.Height :=d-b;
sourcerect:=rect(0,0,c-a ,d-b );
destrect:= rect(a,b,c,d);
bmpscreen.Canvas.CopyRect(sourcerect,fullscreenCanvas,destrect);
jpegscreen:=Tjpegimage.Create ;
jpegscreen.Assign (bmpscreen);
jpegscreen.CompressionQuality:=100;
//jpegscreen.SaveToFile(pchar('c:\'+swj));
jpegscreen.SaveToFile(pchar(ExtractFilePath(ParamStr(0))+swj));
FullscreenCanvas.Free;
bmpscreen.Free;
jpegscreen.Free ;
ReleaseDC(0, DC);
except
end;
end;
[解决办法]
直接getDC(form1.WebBrowser1.Handle);嘛。。