WebView2 応用テクニック
WebView2ランタイムがインストールされているかチェック&ブラウザバージョンの取得
WebView2ランタイムがインストールされている場合、レジストリにバージョン情報が書き込まれていますので、
値の有無をチェックすることでインストール状況確認とブラウザバージョンの取得が行えます。
レジストリの以下の場所をチェックします。
//64ビットWindowsの場合
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}
//32ビットWindowsの場合
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}
//32ビットWindowsの場合
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}
キーが見つかればその中の「pv」値にバージョン番号が入っています。
バージョン番号はCoreWebView2.Environment.BrowserVersionStringでも取得できます。
サンプル
Public Class BrowserVersion Private Sub BrowserVersion_Load(sender As Object, e As EventArgs) Handles MyBase.Load CheckWebView2Runtime() InitializeAsync() End Sub Private Async Sub InitializeAsync() Await webView2.EnsureCoreWebView2Async(Nothing) End Sub Private Sub CheckWebView2Runtime() Using key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\WOW6432Node\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}") If key Is Nothing OrElse key.GetValue("pv") Is Nothing Then MsgBox("no runtime") Else MsgBox(key.GetValue("pv").ToString()) End If End Using End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click MsgBox(webView2.CoreWebView2.Environment.BrowserVersionString) End Sub End Class
public partial class BrowserVersion : Form { public BrowserVersion() { InitializeComponent(); } private void BrowserVersion_Load(object sender, EventArgs e) { CheckWebView2Runtime(); InitializeAsync(); } async void InitializeAsync() { await webView2.EnsureCoreWebView2Async(null); } public void CheckWebView2Runtime() { using (var key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SOFTWARE\WOW6432Node\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}")) { if(key == null || key.GetValue("pv") == null) MessageBox.Show("no runtime"); else MessageBox.Show(key.GetValue("pv").ToString()); } } private void button1_Click(object sender, EventArgs e) { MessageBox.Show(webView2.CoreWebView2.Environment.BrowserVersionString); } }