2013年5月29日水曜日

.NET Framework で WebBrowser コントロールを使用する際に IE のバージョンを選択する

VBとかC#でWebBrowserコントロールを使用する時に、IEのバージョンを指定したい時が有る。
そんな時はレジストリをいじるといいらしい。

32 bit:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION
64 bit:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION

ここに使用したいEXE名(myapp.exe 等)で新規DWORD値を追加する。
で、以下の通りに値を指定する。

  • 9999 (0x270F)
    • IE9のスタンダードモード。!DOCTYPEは無視する。
  • 9000 (0x2328)
    • IE9のスタンダードモードがベースだが、!DOCTYPEに従う。
  • 8888 (0x22B8)
    • IE8のスタンダードモード。!DOCTYPEは無視する。
  • 8000 (0x1F40)
    • IE8のスタンダードモードがベースだが、!DOCTYPEに従う。
  • 7000 (0x1B58) 
    • IE7のスタンダードモードがベースで、!DOCTYPEに従う。
ちなみに、VisualStudio で開発・デバッグ中にこの機能を有効にしたい場合は myapp.vshost.exe も追加しないといけない。