如何使用C#检查已安装的浏览器是否为新手

Bra*_*Dev 10 .net c# browser

我正在构建一个应用程序,它是一个简单的应用程序,我想要它做的只是用英语和架构显示os信息以及检查已安装的浏览器然后我将添加删除cookie的能力.

我坚持的是浏览器检测部分.谁能指点我一些体面的教程或如何?谢谢.

编辑:好的,我设法最终使用下面的hcb提供的代码段和其他人的评论(感谢所有人)来删除一些工作代码.到目前为止,它正在做我想要的,所以我认为id分享我对那些试图做同样事情的人:

RegistryKey browserKeys;

        browserKeys = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\WOW6432Node\Clients\StartMenuInternet");

        if (browserKeys == null)
        {
            browserKeys = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Clients\StartMenuInternet");
        }

        string[] browserNames = browserKeys.GetSubKeyNames();

        foreach (string browser in browserNames)
        {
            using (RegistryKey tempKey = browserKeys.OpenSubKey(browser))
            {
                foreach (string keyName in tempKey.GetValueNames())
                {
                    if (tempKey.GetValue(keyName).ToString() == "Internet Explorer")
                    {
                        internetExplorerButton.Enabled = true;
                        internetExplorerButton.BackgroundImage = Properties.Resources.iExplorer;

                        if (internetExplorerButton.Enabled == true)
                        {
                            Label ieLabel = new Label();
                            ieLabel.Text = "Found!";
                            explorerLable.Text = ieLabel.Text;
                        }
                    }
Run Code Online (Sandbox Code Playgroud)

令我非常恼火的是,我注意到谷歌想要在本地应用数据中安装他们的浏览器.我设法解决这个问题,再次单独编写代码并检查:

Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Google\Update\Clients");
Run Code Online (Sandbox Code Playgroud)

编辑2:检查CurrentUserChrome似乎对一些朋友很好,所以一定没问题.

小智 12

像这样:

RegistryKey browserKeys;
//on 64bit the browsers are in a different location
browserKeys =   Registry.LocalMachine.OpenSubKey(@"SOFTWARE\WOW6432Node\Clients\StartMenuInternet");
if (browserKeys == null)
    browserKeys = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Clients\StartMenuInternet");

string[] browserNames = browserKeys.GetSubKeyNames();
Run Code Online (Sandbox Code Playgroud)

  • 这将列出所有已安装的程序(可以卸载),而不仅仅是浏览器.因此,您需要一个"已接受"的浏览器列表来匹配,可能会错过用户可能安装的浏览器. (3认同)