Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to check for installed browsers using C# for newbies

Tags:

browser

c#

.net

I am building an app and its a simple one, all I want it to do is display os information in plain english and the architecture as well as check for installed browsers and then I'll add the ability for it to delete cookies and what not.

What Im stuck on is the browser detection part. Can anyone point me to some decent tutorials or how tos? Thanks.

Edit: OK I managed to finally scratch out some working code using the snippet provided by hcb below and the comments from the others (thanks everyone). So far it is doing exactly what I want so I thought id share what I have for those trying to do the same thing:

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;
                        }
                    }

To my extreme annoyance, I noticed that Google want to install their browser in the Local App Data. I managed to work this out writing the code again separately and checking:

Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Google\Update\Clients");

Edit2: Checking CurrentUser for Chrome seems to work fine for a few friends so it must be OK.

like image 360
BrandNewDev Avatar asked Sep 27 '11 09:09

BrandNewDev


People also ask

How do I find all browsers installed on a user’s machine?

In the application I’ve been working on, I needed to find all browsers that are installed on a user’s machine. The best way to go about this is to look in the registry under HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet.

How to check browser apps installed on Windows 10 device?

Check out the Run Query button from the SCCM CMPivot tool. The SMSDefaultBrowser is the main entity used in the query to findout the browser applications installed on the Windows 10 device. As you can see in the following are browser apps installed on the device PROD-WIN20.

How to find out what web browser a client is using?

If it is Internet Explorer, navigator.appName returns the string “Microsoft Internet Explorer”. Using both objects, we can create an alert box to display what web browser the client is using and this navigator object contain all the information about web browser version, name, and more.

How to check if a browser is chrome or Safari?

One additional check is required in the case of the Safari browser as the user-agent of the Chrome browser also includes the Safari browser’s user-agent. If both the user-agents of Chrome and Safari are in the user-agent, it means that the browser is Chrome, and hence the Safari browser value is discarded.


1 Answers

Like this:

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();
like image 97
hcb Avatar answered Oct 05 '22 13:10

hcb