0

C#アプリケーションに特定のバージョンのMSHTML DLLを使用させる方法はありますか?

さまざまなバージョンのIEレンダリングエンジンを使用して、WebデザイナーがIE6、IE7などとの下位互換性について作成をテストできるようにするアプリケーションを作成しようとしています...

私がこれまでに理解している限り、SHDOCVWDLLはMSHTMLDLL(http://msdn.microsoft.com/en-us/library/aa741313 (VS.85).aspx)を「ホスト」または「実行」します。

バージョン6.0.2900.2877SHDOCVW.DLLをVisualC#2008 ExpressEditionのツールボックスにドラッグすることでアプリケーションフォームにMicrosoftWebブラウザ(COMコンポーネントバージョン1.1)を作成し、で標準のWebBrowser.NETコンポーネントを作成することができました。 COMコンポーネントがMSHTMLのv6(v6 SHDOCVW DLLと同じフォルダーにあります)を使用することを期待しています...ただし、両方のコンポーネントが同じ(おそらくシステム?)バージョンのMSHTMLを使用しているようです。

私はIE6を搭載したXPSP2とIE7を搭載したXPSP3でアプリを実行しました。

IE6を使用するSP2では、両方のブラウザーコンポーネント$_SERVER['HTTP_USER_AGENT']がMSIE 6.0として報告され、IE7を使用するSP3では、両方のブラウザーコンポーネントがMSIE7.0として報告$_SERVER['HTTP_USER_AGENT']されます。

MSHTML DLLの特定のバージョンの使用を強制することが可能かどうか誰かが知っていますか?もしそうなら、どのように?

4

2 に答える 2

1

このType.GetTypeFromProgIdメソッドを使用して、使用する特定のバージョンのMSHTMLのProgId文字列を解決できます。次に、を使用Activator.CreateInstance()してWebブラウザコントロールのインスタンスを作成します。その後、次の例のように、使用するそれぞれのインターフェイスに結果をキャストできます(残念ながら、MSHTMLの正しいProgIdはわかりません)。

string progId = "MyProgIdValue";
Type type = Type.GetTypeFromProgID(progId);
object mshtml = Activator.CreateInstance(type);
于 2009-11-20T14:04:16.180 に答える
1

コードは役に立ちませんが、このプログラムはあなたが達成しようとしていることをすでに実行しています

IETester

atmがダウンしているように見えますが

于 2009-11-20T14:38:58.283 に答える