我正在开发一个托管 WebBrowser 控件并保存网页屏幕截图的应用程序。(C#、VS2008、IE 9、Vista。所有都是最新的。FEATURE_BROWSER_EMULATION 设置为 0x2328)
该应用程序获取 url 列表并逐个导航到 url 并保存屏幕截图。应用程序流程简单如下:从文件中读取 url,首先使用 HttpWebRequest 获取它,如果它存在并且如果它是 html 调用 webBrowser.Navigate(url),等到 WebBrowser.ReadyState 为 WebBrowserReadyState.Complete (处理 WebBrowser.DocumentCompleted 事件并简单在 ReadyState 为 WebBrowserReadyState.Complete 之前什么都不做),再等几秒钟以确保安全(最多测试 10 秒),保存屏幕截图并移至下一个 url。它适用于几乎所有 url(来自许多不同站点的页面),但嵌入在我的应用程序中的 WebBrowser 不会呈现某些 url,尤其是来自 www.securityfocus.com 的页面,例如:http ://www.securityfocus.com/bid/ 52023
我尝试禁用缓存,在每次请求之前清除缓存,等待最多 10 秒,只是为了给它一些时间来渲染等无济于事。我在视觉上确认 WebBrowser 没有呈现页面,这不是与保存屏幕截图相关的问题(我正在使用 BitBlt,但我认为它不相关)。页面使用 IE 正常呈现。
如果您对为什么会发生这种情况有任何建议,请告诉我。提前致谢