如何使用VB6检查PC上是否安装了“Microsoft Edge WebView2 Runtime”或“Microsoft Edge Insider Channels”金丝雀版本?

3
我正在计划为一个由VB6开发的小应用程序添加功能,该功能将检查使用WebView2控件的WPF应用程序的先决条件。首先运行这个小应用程序,确定是否已安装“Microsoft Edge WebView2 Runtime”或“Microsoft Edge Insider Channels”之一?如果发现其中一个选项,则允许运行WPF应用程序,否则会显示一个错误以安装先决条件。
我的要求是保持VB6应用程序,因为此应用程序已经检查了不同版本的.NET框架。
请帮我,如何实现这一点?
谢谢。

1
您可以在注册表中检查应用程序是否已安装。不幸的是,我没有关于这种情况的VB示例,如果它是C#,我可以与您分享。在C#方面,从Microsoft.Win32.Registry类进行检查可能会指引您的方向。 - Ozgur Saklanmaz
@OzgurSaklanmaz 是的,那个方法可行,但我只能在运行时检查。我使用了这个链接 https://learn.microsoft.com/en-us/microsoft-edge/webview2/concepts/distribution。但是我该如何通过注册表检查是否安装了Insider通道?Insider Channel Canary的确切条目是什么? - Imran Yaseen
我认为这个链接 https://github.com/MicrosoftEdge/WebView2Feedback/issues/421 非常有用。它还提到了金丝雀版本的注册表项。 - Imran Yaseen
1
正如您在第二篇帖子中提到的那样,您需要检查此字段以查看是否已安装。我在C#中尝试了它。它显示“Microsoft Edge WebView2 Runtime”已安装。SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall - Ozgur Saklanmaz
1
如果你需要的话,我可以分享C#代码。也许你可以将它转换成VB。 - Ozgur Saklanmaz
1个回答

2
抱歉,我不知道在VB中它是什么样子的,但是你应该能够使用静态方法CoreWebView2Environment.GetAvailableBrowserVersionStringCoreWebView2Environment.CompareBrowserVersions。GetAvailableBrowserVersionString将告诉您如果创建了一个WebView2,将使用哪个WebView2运行时版本,并且您可以使用CompareBrowserVersions检查从GetAvailableBrowserVersionString获取的版本是否高于您的最低要求版本。
string availableVersion = null;
try
{
    availableVersion = CoreWebView2Environment.GetAvailableBrowserVersionString();
}
catch (WebView2RuntimeNotFoundException)
{
}

if (availableVersion != null &&
    CoreWebView2Environment.CompareBrowserVersions(availableVersion, "100.0.0.0") >= 0)
{
    System.Console.WriteLine("Minimum version found");
}
else
{
    System.Console.WriteLine("Minimum version not found.");
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接