首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

后台区域截图的有关问题

2013-01-06 
后台区域截图的问题还是区域截图的问题我的想法是本地载入一张图片 可以是image控件或者是其他的 然后在后

后台区域截图的问题
还是区域截图的问题
我的想法是

本地载入一张图片 可以是image控件或者是其他的 然后在后台区域截图

但是怎么才能做到后台区域截图 不是直接在webb里面截图了

用区域截图的函数 用下面的函数 虽然句柄写正确以后 但是 在xp的电脑上 还是截图是屏幕的不是后台的程序的控件的截图

而在vin7的电脑上却可以 求改正代码  个人觉得下面的代码好像只能截图屏幕的截图 而不能后台截图

后没有后台区域截图的函数呢

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:=GetWindowDC(form1.Handle);
  //dc:=getdc(getdc(GetWindow(GetWindow(form1.WebBrowser1.Handle, GW_CHILD), GW_CHILD)));
 // dc:=getdc(form1.webbrowser1.Handle);
  ///showmessage(inttostr(dc)) ;
  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 最小化的窗口不行. 换个思路设置程序窗口坐标为-1000这样的, 让他跑到桌面外面去,截图后,恢复再最小化。

热点排行