C#webbrowserリファレンスのIEバージョンの設定
2127 ワード
今日WebBrowser Control素子のテストをしてみると、IE 9は私が書いたWebSocketプログラムを実行できないことがわかりました.そのため、HTML 5の支援程度を少しテストしてみると、IEで開くと138の点数を出すことができますが、WebBrowser Controlでは41点しか出せません.
Aaron大神の開示を経て、これは実際にIEを直接使うのとWebBrowser Controlを使って運行するのとは異なるUser Agentのためであることが分かった.こちらの筆者のIEのように走っているのはIE 9ですが、WebBrowser Controlが走っているのはIE 7です.
WebBrowser ControlのUser Agent設定を調整しなければなりません.IEのFeatureログイン情報を修正することで、この効果を達成することができます.コードの位置は以下の通りです.
このコードの下にアプリケーションと同じ名前のDword Keyが追加され、設定された値はインターネットFeature Control(B.C)という文章を参照することができ、異なる値は異なるバージョンのUser Agentに対応する.
筆者がWindowsFormApplication 3という名前を付けたいようです.exeのアプリケーション指定はIE 9のUser Agentで動作し、以下のように設定できます.
手動で修正するだけでなく、プログラムを通じて、次のように書くこともできます.
設定後に実行すると、既にIE 9のUser Agentを使用して実行していることがわかります.
HTML 5の支援度を再テストし、41点から137点に点数を上げ、直接IEで開くのとは差がない.
Link Web Browser Control – Specifying the IE Version Internet Feature Controls (B..C) More IE8 Extensibility Improvements C#ウィンドウプログラム:新しいブラウザコントロールをどのように使用しますか? C# Web Browser component is IE7 not IE8? How to change this?
Aaron大神の開示を経て、これは実際にIEを直接使うのとWebBrowser Controlを使って運行するのとは異なるUser Agentのためであることが分かった.こちらの筆者のIEのように走っているのはIE 9ですが、WebBrowser Controlが走っているのはIE 7です.
WebBrowser ControlのUser Agent設定を調整しなければなりません.IEのFeatureログイン情報を修正することで、この効果を達成することができます.コードの位置は以下の通りです.
1
32 bit:
2
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION
3
4
64 bit:
5
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION
このコードの下にアプリケーションと同じ名前のDword Keyが追加され、設定された値はインターネットFeature Control(B.C)という文章を参照することができ、異なる値は異なるバージョンのUser Agentに対応する.
筆者がWindowsFormApplication 3という名前を付けたいようです.exeのアプリケーション指定はIE 9のUser Agentで動作し、以下のように設定できます.
手動で修正するだけでなく、プログラムを通じて、次のように書くこともできます.
1
...
2
public
Form1()
3
{
4
var appName = Process.GetCurrentProcess().MainModule.ModuleName;
5
Registry.SetValue(
@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION"
, appName, 9999, RegistryValueKind.DWord);
6
InitializeComponent();
7
}
8
...
設定後に実行すると、既にIE 9のUser Agentを使用して実行していることがわかります.
HTML 5の支援度を再テストし、41点から137点に点数を上げ、直接IEで開くのとは差がない.
Link