0

C#WinForms、.NET Framework 3.5では、フォームにWebBrowerコントロールを使用してプロジェクトを作成します。

...プロジェクト参照をMSHTMLdllに設定し、WinFormコードを使用: "using mshtml;" ..。

  1. お気に入りフォルダのような「特別なフォルダ」をブラウザに簡単にロードできます。

  2. 「特別なフォルダ」をロードした後:WebBrowserに表示されるのは本質的に一種の「エクスプローラ」ビューです:「詳細」ビューの「詳細」などの典型的な「エクスプローラ」ビュースタイルを選択できます。行-列マトリックス、典型的な「エクスプローラー」スタイルの列ヘッドなど。

通常、ドキュメントまたはドキュメントのDomDocumentをmshtml.dllによって公開されているIHTMLDocument2インターフェイスにキャストすることで、WebブラウザのDOMに「アクセス」します。

IHTMLDocument2 HTMLDocument =(IHTMLDocument2)webBrowser1.Document;

//これも試しました

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

//これも試しました

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

しかし、この場合、「特別なフォルダ」のコンテンツを表示すると、常にドキュメントがnullとして表示されます。

お気に入りなどの特別なフォルダを表示しているときに、新しいフォルダを作成して他の「ファイル操作」を実行できるのは興味深いことです。IE8でプロテクトモードをオフにしているので、「これでうまくいく」のではないでしょうか。

WebBrowserコントロールで特別なフォルダーを表示しながらDOMにアクセスする方法についてのアイデアに感謝します。

ありがとう !明細書

4

2 に答える 2

1

フォルダ ビューは HTML ドキュメントではないため、HTML インターフェイスを使用してコンテンツにアクセスすることはできません。ウィンドウに表示される内容に本当に関心がある場合は、IShellBrowser、IShellView、IFolderView などのシェル インターフェイスを使用してください。

于 2009-10-24T00:16:05.717 に答える
0

通常、ウェブブラウザのドキュメントプロパティは、ページが読み込まれるまでnullになります。これを試して、ドキュメントプロパティを初期化できます。

webBrowser1.Navigate( "about:blank"); while(webBrowser1.Document.Body == null)Application.DoEvents(); //これで、innerHtmlの取得/設定を含め、Documentプロパティにアクセスできるようになりました

ただし、見たいものを表示しているときにDocumentプロパティがnullであるという事実は、Documentプロパティがnullでなくなった場合でも、それが方法ではないことを示唆しているため、これが役立つかどうかはわかりません。特別なフォルダデータにアクセスします。ただし、上記のコードを試してから、特別なフォルダを読み込んでから、ドキュメントを見て、何が得られるかを確認できます...

于 2009-10-05T20:37:36.467 に答える