ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

WebBrowserコンポーネントを使ってWebサイトの表示が崩れた場合の対処

レジストリでの対処となりました。アプリケーションだけでは解決しないのは、導入時の手間が増えます。
f:id:AJYA:20140513124538j:plain
photo credit: cipovic via photopin cc

Visual BasicでWebBrowserコンポーネントを使ってWebサイトを表示したら、Internet Explorer 8以降であれば正常に表示されるサイトのレイアウトが崩れて表示されました。
レイアウトの崩れ方を見てみると、互換表示を選んだときと同じ崩れ方なので、互換モードを解除する方法を探さないといけないようです。

調べた結果

レジストリに値を書き込むしかないということがわかりました。
どのように書き込むかは、以下のサイトに書かれています。
Internet Feature Controls (B..C) (Internet Explorer)

僕の場合は、

HKEY_CURRENT_USER
  Software
    Microsoft
      Internet Explorer
        Main
          FeatureControl
            FEATURE_BROWSER_EMULATION


名前:test-browser.exe
DWORD:0x22b8
レジストリに書き込むことで、互換モードではなく表示され、意図したとおりとなりました。

上記のサイトにも書いてありますが、WebBrowserコンポーネントを使っていてなにも設定していないと、0x1B58が設定されたことになって、IE 7互換表示になってしまいます。
最初から、利用しているコンポーネントのバージョンそのままで表示するように改めて欲しいです。