TWebBrowser 等の IE コンポーネントを利用した場合、デフォルトでは IE7 の互換モードで動作します。
[HKCU\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
または
[HKLM\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
に "アプリケーションの EXE 名=dword:値" をセットすればレンダリングモードを 変更できます。
例えば、Delphi の IDE である bds.exe も IE コンポーネントを使っています。ウェルカムページ ([表示 | ウェルカムページ]) 等がそうですね。
アドレスバーに http://www.useragentstring.com/ を入力して確認してみます。
IE7 と表示されましたが、テストした環境は Windows 7 + IE10 の環境です。では、以下のレジストリを登録してみましょう。
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION] "bds.exe"=dword:00002710
Delphi を起動し、先程と同じサイトを表示してみます。
今度は IE10 と表示されました。このように IE コンポーネントは、
- 初期レンダリングエンジンは IE 互換モード (現状、IE7)
- レジストリを操作しないと現在利用中の IE と同じレンダリングモードにはならない
という事になります。レジストリで指定するレンダリングモードの値は以下のようになります。
IE7 : 7000 (0x1B58) IE8 : 8000 (0x1F40) IE9 : 9000 (0x2328) IE10: 10000 (0x2710) IE11: 11000 (0x2AF8)
See Also:
[IE8 の WebBrowser コントロールのレンダリング モード (MSDN)]
http://msdn.microsoft.com/ja-jp/ie/cc787976.aspx
[More IE8 Extensibility Improvements (IEBlog)]
http://blogs.msdn.com/ie/archive/2009/03/10/more-ie8-extensibility-improvements.aspx
|