Как проверить наличие установленных браузеров, используя C # для новичков - PullRequest
10 голосов
/ 27 сентября 2011

Я создаю приложение и оно простое, все, чего я хочу, это отображать информацию об ОС на простом английском языке и архитектуру, а также проверять наличие установленных браузеров, а затем я добавлю возможность удаления файлов 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;
                        }
                    }

К моему крайнему раздражению, я заметил, что Google хочет установить свой браузер вДанные локального приложения.Мне удалось это сделать, написав код снова отдельно и проверив:

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

Edit2: Проверка CurrentUser для Chrome, кажется, работает нормально для некоторыхдрузья, так что все должно быть в порядке.

1 Ответ

12 голосов
/ 27 сентября 2011

Как это:

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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...