在程序中有时需要检测本机已安装的浏览器,打开注册表编辑器可以看到本机已安装的浏览器列表
既然知道了这个位置,那么我们就可以在 .Net6 中使用操作注册表的方式来获取这些信息,.Net6 操作注册表使用的是 Microsoft.Win32 命名空间中的 Registry 类。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| using System.Diagnostics; using Microsoft.Win32;
browserKeys = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\WOW6432Node\Clients\StartMenuInternet"); if (browserKeys == null) browserKeys = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Clients\StartMenuInternet"); string[] browserNames = browserKeys.GetSubKeyNames(); for (int i = 0; i < browserNames.Length; i++) { BrowserEntity browser = new BrowserEntity(); RegistryKey browserKey = browserKeys.OpenSubKey(browserNames[i]); browser.Name = (string)browserKey.GetValue(null); RegistryKey browserKeyPath = browserKey.OpenSubKey(@"shell\open\command"); browser.Path = (string)browserKeyPath.GetValue(null).ToString().StripQuotes(); RegistryKey browserIconPath = browserKey.OpenSubKey(@"DefaultIcon"); browser.IconPath = (string)browserIconPath.GetValue(null).ToString().StripQuotes(); browsersList.Add(browser); if (browser.Path != null) browser.Version = FileVersionInfo.GetVersionInfo(browser.Path).FileVersion; else browser.Version = "unknown"; }
|
遍历注册表中的浏览器列表,再获取相关信息即可。
完整代码:https://github.com/varm/dotnet.checkbrowsers