Tips というより開発時に調べた Script 等を忘れないように書き留めた覚え書きです。
最近はここに書き留めておくことも忘れている始末で、我ながら情けなく思う今日この頃です。
ということで、不定期更新というか最近更新していませんが、JavaScript や VBScript などを紹介していきますのでご参考になれば幸いです。

WebBrowser コントロールの Internet Explorer を最新のバージョンに変更する方法

WebBrowser はデフォルトの状態だと Internet Explorer 7 として動作します。
最新バージョンの Internet Explorer 11 で動作させるためにはレジストリを書き換える必要があります。

  1. レジストリエディタを起動します
    • タスクバーの左にある[スタート]を右クリックして表示されるメニューの[ファイル名を指定して実行(R)]をクリック
      タスクバーのスタート
    • 名前欄に「regedit」を入力して[OK]をクリック
      ファイル名を指定して実行
  2. HKEY_LOCAL_MACHINE に追加しても良いが、現在のユーザーのみで動作すれば良いので HKEY_CURRENT_USER に追加します
    HKEY_CURRENT_USER
  3. SOFTWARE を開きます
    SOFTWARE
  4. Microsoft を開きます
    Microsoft
  5. Internet Explorer を開きます
    Internet Explorer
  6. main を開きます
    main
  7. FeatureControl を開きます
    FeatureControl
    FeatureControl がない場合は main を右クリックして新規作成します
    FeatureControlを新規作成
  8. FEATURE_BROWSER_EMULATION がない場合は上記 FeatureControl 同様新規作成します
    FEATURE_BROWSER_EMULATION を右クリックして [新規] → [DWORD (32ビット)値] を選択します
    FEATURE_BROWSER_EMULATION
  9. 値の名前に実行ファイル名を入力します
    表記で[10進数]を選択し、値のデータに使用したいIEのバージョンの数値を入力します
    Internet Explorer 11 の場合「11001」を入力します
    DWORD (32ビット)値の編集
値 (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

ページの先頭へ