利用IE 实现Web 页面截图
来源:互联网 发布:知其雄,守其雌 编辑:程序博客网 时间:2024/04/24 10:11
1. 目的
在Codeproject 中看到有人做这个, 稍微做了下修改, 做成了命令行的, 使用方法是
iesnap.exe url filename
用以抓取 URL 对于的Web, 并且将Web 的截图保存在Filename 中.
url : 要截图的网址
filename: 截图保存文件名
2. 思路
主要使用WebBrowser Control 和 MSHTML 来完成.
a. 创建WebBrowser control
b. 从WebBrowser Control 获取 IWebBrowser2 接口, 用 IWebBrowser2::Navigate2 来访问URL
c. 获得IHTMLElementRender (WebBrowser -> IHTMLDocument2 -> IHTMLElement -> IHTMLElementRender), 使用该接口的DrawToDC 来获取URL 对应的页面截图内容.
d. 用GDI 的 Image 来保存截图到Filename
3.
可以看看原文以得到更好的解答
我看的那个文章: Capture an HTML document as an image
另外一篇C# 的文章: Image Capture Whole Web Page using C#
4. 问题
a. DocumentComplete 事件会在URL 对应页面的每个元素下载完毕的时候都会发生, 所以:( 还不知道哪个事件是整个页面下载完毕的事件:/
b. 现在是通过MFC 来创建WebBrowser Control 的, 不知道怎么在Win32 Application 中创建这个控件.
c. 不知道如何得到整个页面的大小, 现在只能保存页面截图的一部分:(
这个已经知道怎么做了.
IHTMLElement2 的 scrollWidth & scrollHeight 加上 scrollLeft & scrollTop 来实现, 但是不知道为什么, put_scrollTop & put_scrollLeft 这些函数好像不对, 只能截获到一部分页面截图.:( 不知道为什么
代码可以在这里下载: http://www.cppblog.com/Files/bigsml/iesnapshot.zip
- 利用IE 实现Web 页面截图
- 利用IE浏览器直接实现WEB打印
- java利用IE浏览器实现web打印
- 利用javascript实现页面截图(html2canvas的用法)
- 利用selenium实现截图
- 利用opencv实现截图函数
- 使用phantomjs获得web页面截图
- 利用TDC组件实现对WEB页面的交互操作
- 利用JSP在Web页面中实现Auth认证
- 利用JSP在Web页面中实现Auth认证
- 利用TDC组件实现对WEB页面的交互操作
- 利用javascript实现web页面刷新的方法
- 利用javascript实现web页面刷新的方法
- [转]利用javascript实现web页面刷新的方法
- 利用JavaScript实现Web页面刷新的方法!
- 利用Notify Server实现WEB页面实时获取通知消息
- js 利用html2canvas实现截图功能
- 利用css和js实现firefox和IE都支持的页面局部打印
- 程序员的十种级别
- Rational rose2003 破解
- 使用 FlashWindowEx 实现闪屏效果
- samhoo on appengine vol.1
- base64编码类------源代码(C#)
- 利用IE 实现Web 页面截图
- [收藏] Graphing/Charting Data on Web Pages: JavaScript Solutions
- 天涯人脉通讯录2010 - 被日本杂志介绍了!庆祝一下!
- c++primer 习题9.12
- C#的消息处理方法
- C#反射实例讲解
- 今天做路由实验学习体会---配置OSPF路由协议
- Ajax入门例子
- c# 反射的用法