0

在 C# WinForms、.NET Framework 3.5 项目中,表单上有一个 WebBrower 控件:

... 项目引用设置为 MSHTMLdll 和 WinForm 代码:​​“使用 mshtml;” ...

  1. 您可以轻松地将“特殊文件夹”(例如“收藏夹”文件夹)加载到浏览器中。

  2. 加载“特殊文件夹”后:WebBrowser 中显示的内容本质上是一种“资源管理器”视图:您可以选择典型的“资源管理器”视图样式的“详细信息”等。在详细信息视图中,您有一个行列矩阵,具有典型的“Explorer”样式列头等。

通常,我会通过将 Document 或 Document 的 DomDocument 转换为 mshtml.dll 公开的 IHTMLDocument2 接口来“获取”WebBrowser 的 DOM:

IHTMLDocument2 HTMLDocument = (IHTMLDocument2)webBrowser1.Document;

//也试过这个

// IHTMLDocument2 HTMLDocument = (IHTMLDocument2)webBrowser1.Document.DomDocument;

//也试过这个

// HTMLDocumentClass HTMLDocument = webBrowser1.Document.DomDocument as HTMLDocumentClass;

但在这种情况下,查看“特殊文件夹”内容时,我总是将 Document 设为 null。

有趣的是,您可以在查看特殊文件夹(如收藏夹)时创建一个新文件夹并执行其他“文件操作”:我想知道我是否因为在 IE8 上关闭了保护模式而“摆脱了这个”?

在查看 WebBrowser 控件中的特殊文件夹时,了解有关如何访问 DOM 的任何想法。

谢谢 !账单

4

2 回答 2

1

文件夹视图不是 HTML 文档,因此您不能使用 HTML 界面访问内容。如果您真的对窗口中显示的内容感兴趣,请使用 IShellBrowser、IShellView 和 IFolderView 等 shell 接口。

于 2009-10-24T00:16:05.717 回答
0

通常,在加载页面之前,网络浏览器的文档属性将为空。您可以尝试这样做来初始化文档属性:

webBrowser1.Navigate("关于:空白"); while (webBrowser1.Document.Body == null) Application.DoEvents(); // 现在您可以访问 Document 属性,包括获取/设置 innerHtml

但是,我不确定这会对您有所帮助,因为 Document 属性为 null 的事实,而您仍在查看您想查看的内容,这表明即使 Document 属性不再为 null,也不会是这样访问特殊文件夹数据。但是你可以试试上面的代码,然后加载你的特殊文件夹,然后查看文档,看看你得到了什么......

于 2009-10-05T20:37:36.467 回答