Tips というより開発時に調べた Script 等を忘れないように書き留めた覚え書きです。
最近はここに書き留めておくことも忘れている始末で、我ながら情けなく思う今日この頃です。
ということで、不定期更新というか最近更新していませんが、JavaScript や VBScript などを紹介していきますのでご参考になれば幸いです。
WebBrowser コントロールの Internet Explorer を最新のバージョンに変更する方法
WebBrowser はデフォルトの状態だと Internet Explorer 7 として動作します。
最新バージョンの Internet Explorer 11 で動作させるためにはレジストリを書き換える必要があります。
- レジストリエディタを起動します
- タスクバーの左にある[スタート]を右クリックして表示されるメニューの[ファイル名を指定して実行(R)]をクリック

- 名前欄に「regedit」を入力して[OK]をクリック

- タスクバーの左にある[スタート]を右クリックして表示されるメニューの[ファイル名を指定して実行(R)]をクリック
- HKEY_LOCAL_MACHINE に追加しても良いが、現在のユーザーのみで動作すれば良いので HKEY_CURRENT_USER に追加します

- SOFTWARE を開きます

- Microsoft を開きます

- Internet Explorer を開きます

- main を開きます

- FeatureControl を開きます

FeatureControl がない場合は main を右クリックして新規作成します

- FEATURE_BROWSER_EMULATION がない場合は上記 FeatureControl 同様新規作成します
FEATURE_BROWSER_EMULATION を右クリックして [新規] → [DWORD (32ビット)値] を選択します

- 値の名前に実行ファイル名を入力します
表記で[10進数]を選択し、値のデータに使用したいIEのバージョンの数値を入力します
Internet Explorer 11 の場合「11001」を入力します

| 値 (10進数) | バージョン |
|---|---|
| 11001 | Internet Explorer 11 Edgeモード |
| 11000 | Internet Explorer 11 |
| 10001 | Internet Explorer 10 Standardsモード |
| 10000 | Internet Explorer 10 |
| 9999 | Internet Explorer 9 Standardsモード |
| 9000 | Internet Explorer 9 |
| 8888 | Internet Explorer 8 Standardsモード |
| 8000 | Internet Explorer 8 |
| 7000 | Internet Explorer 7 |
プログラムでレジストリを書き換える方法
自分でソフトを使用する場合はレジストリを書き換えられますが、他の人に使って貰う場合レジストリを書き換えてもらうことはハードルが高いですよね。
下記はプログラムでレジストリを書き換える方法です。
レジストリに自ソフトが登録されていない場合のみ登録するようにしています。
'アセンブリ名を取得する
Dim asm As Reflection.Assembly = Reflection.Assembly.GetExecutingAssembly()
Dim strExeName As String = asm.ManifestModule.Name
Dim regkey As Microsoft.Win32.RegistryKey = Nothing
Dim RegkeyPtath As String = "Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION"
Try
regkey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(RegkeyPtath, False)
Dim blnRegFlg As Boolean = False
If regkey IsNot Nothing Then
If regkey.GetValue(strExeName) = Nothing Then
blnRegFlg = True
End If
Else
blnRegFlg = True
End If
If blnRegFlg Then
Dim intBrowserVersion As Integer = 11001 'Internet Explorer 11 Edgeモード に設定
regkey = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(RegkeyPtath)
regkey.SetValue(strExeName, intBrowserVersion, Microsoft.Win32.RegistryValueKind.DWord)
End If
Catch ex As Exception
'エラーは無視
Console.WriteLine(ex.Message)
Finally
If regkey IsNot Nothing Then
regkey.Close()
End If
End Try
