如何检测是否安装了Microsoft Edge

本文关键字:安装 Microsoft Edge 是否 何检测 检测 | 更新日期: 2023-09-27 18:20:59

我正在编写一个windows窗体应用程序(c#),我需要检测用户的机器中是否安装了"Microsoft Edge"。

我目前正在使用此注册表位置:

[HKEY_CLASSES_ROOT'Local Settings'Software'Microsoft'Windows'CurrentVersion'AppModel'PackageRepository'Packages'Microsoft.MicrosoftEdge_20.10240.16384.0_neutral__8wekyb3d8bbwe]
"Path"="C:''Windows''SystemApps''Microsoft.MicrosoftEdge_8wekyb3d8bbwe"

在"Microsoft.MicrosoftEdge"后面有一个regex。如果"路径"存在,那么我知道安装了edge。

有没有更好的方法来检测边缘?如果我检测到我在Windows10上运行,并且默认情况下Win10带有edge,会更好吗?最好的方法是什么?

如何检测是否安装了Microsoft Edge

如果你想让一个小程序获得版本号:

static void Main(string[] args)
    {
        string EdgeVersion = string.Empty;
        //open the registry and parse through the keys until you find Microsoft.MicrosoftEdge
        RegistryKey reg = Registry.ClassesRoot.OpenSubKey(@"Local Settings'Software'Microsoft'Windows'CurrentVersion'AppModel'PackageRepository'Packages");
        if (reg != null)
        {
            foreach (string subkey in reg.GetSubKeyNames())
            {
                if (subkey.StartsWith("Microsoft.MicrosoftEdge"))
                {
                    //RegEx: (Microsoft.MicrosoftEdge_)('d +'.'d +'.'d +'.'d +)(_neutral__8wekyb3d8bbwe])
                    Match rxEdgeVersion = null;
                    rxEdgeVersion = Regex.Match(subkey, @"(Microsoft.MicrosoftEdge_)(?<version>'d+'.'d+'.'d+'.'d+)(_neutral__8wekyb3d8bbwe)");
                    //just after that value, you need to use RegEx to find the version number of the value in the registry
                    if ( rxEdgeVersion.Success )
                        EdgeVersion = rxEdgeVersion.Groups["version"].Value;
                }
            }
        }
        Console.WriteLine("Edge Version(empty means not found): {0}", EdgeVersion);
        Console.ReadLine();
    }

感谢您通过注册表链接找到版本号。

如果您使用的是Windows 10的桌面版或移动版,则Edge是预装的,无法卸载。

若要检测是否在Windows 10上运行,请使用System.Environment.OSVersion属性或Version Helper函数。(另请参阅https://msdn.microsoft.com/en-us/library/windows/desktop/ms724832(v=vs.85).aspx)

如果你想检测默认浏览器,你应该看看如何确定Windows默认浏览器(在开始菜单的顶部)

与2016年11月15日有关:

我发现工作的唯一方法是使用这个注册表位置:

[HKEY_CLASSES_ROOT'Local Settings'Software'Microsoft'Windows'CurrentVersion'AppModel'PackageRepository'Packages'Microsoft.MicrosoftEdge_20.10240.16384.0_neutral__8wekyb3d8bbwe]
"Path"="C:''Windows''SystemApps''Microsoft.MicrosoftEdge_8wekyb3d8bbwe"

在"Microsoft.MicrosoftEdge".之后带有regex

如果"路径"存在,那么我知道edge已安装。

参考其他答案:我安装的Windows 10没有这个密钥:Microsoft.MicrosoftEdge_20.10240.16384.0_neutral__8wekyb3d8bbwe

In:

[HKEY_CLASSES_ROOT'Local Settings'Software'Microsoft'Windows'CurrentVersion'AppModel'PackageRepository'Packages']

相反,它有以下密钥:

Microsoft.MicrosoftEdge_38.14393.0.0_neutral__8wekyb3d8bbwe
Microsoft.MicrosoftEdge_40.15063.674.0_neutral__8wekyb3d8bbwe

以下代码可用于检测是否安装了Edge:

class Program
{
    static void Main(string[] args)
    {
        var edgeFound = false;
        using (var key = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(@"Local Settings'Software'Microsoft'Windows'CurrentVersion'AppModel'PackageRepository'Packages'"))
        {
            if (key != null)
            {
                foreach (var subkey in key.GetSubKeyNames())
                {
                    if (subkey.StartsWith("Microsoft.MicrosoftEdge_"))
                    {
                        edgeFound = true;
                        break;
                    }
                }
            }
        }
        Console.Write(edgeFound);
        Console.ReadLine();
    }
}