getdc得到句柄以后截图为什么一直是桌面的截图
getdc得到句柄以后截图为什么一直是桌面的截图
我希望可以后台通过句柄的范围截图
为什么不管 dc:=getdc 还是 dc:=getwindowDc 一直截图 都是 截图桌面 而不是控件的句柄的范围截图呢
难道是句柄抓取的不对? 但是我尝试 form1.handle 或者 form1.webbrowser.handle 一直也是截取桌面的图片
求解答 感谢 感谢
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;
我希望可以后台通过句柄的范围截图
为什么不管 dc:=getdc 还是 dc:=getwindowDc 一直截图 都是 截图桌面 而不是控件的句柄的范围截图呢
难道是句柄抓取的不对? 但是我尝试 form1.handle 或者 form1.webbrowser.handle 一直也是截取桌面的图片
求解答 感谢 感谢
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;
...全文
相关推荐
MFC桌面截图 类似于qq截图功能
一个桌面截屏程序代码,没有界面,类似于qq截图功能,可以保存bmp格式图片,双击到剪贴板, 不支持截取动态的视频 ctrl+a 截图 alt+q退出程序
基于DELPHI的DLL屏幕截图技术实现
看到这里,你应该已经掌握了从零构建一个工业级截图DLL的全套技能。这不是一个玩具项目,而是一个真正能在生产环境中扛住压力的组件。它具备:✅ 跨语言调用能力✅ 高性能双缓冲机制✅ 完善的错误处理与日志✅ 多平台适配与兼容性保障✅ 可视化测试与性能分析更重要的是,你学会了如何思考一个模块的设计边界:什么时候该暴露接口,什么时候该隐藏细节,如何平衡灵活性与稳定性。这种思维方式,远比学会某个API重要得多 🌟。
c#调用win32获取窗体名,根据句柄获取窗体名,截图等功能
c#调用win32获取窗体名,根据句柄获取窗体名,截图等功能
C#实现指定某个特定窗体截图及窗体全屏截图.zip
C#实现指定某个特定窗体截图及窗体全屏截图,即使窗体不处于桌面可视化中也可以完成目标窗体的截图,及全屏截图,适用于所有.net程序
VB API 截图功能代码
VB API 截图功能代码 VB API 截图功能代码


GAME,图形处理/多媒体
