如何检测是否安装了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,会更好吗?最好的方法是什么?
如果你想让一个小程序获得版本号:
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();
}
}