DefaultBrowser из реестра не работает - PullRequest
0 голосов
/ 11 ноября 2010

Я пытаюсь открыть URL в браузере по умолчанию. Очевидно, я думал, что Shell Exec откроет его в браузере по умолчанию, но это не так.

Тогда я попытался явно:

Process.Start(GetDefaultBrowserPath(), "http://stackoverflow.com");

private static string GetDefaultBrowserPath()
{
    string key = @"htmlfile\shell\open\command";
    RegistryKey registryKey =
    Registry.ClassesRoot.OpenSubKey(key, false);
    // get default browser path
    return ((string)registryKey.GetValue(null, null)).Split('"')[1];
}

Он всегда возвращает Internet Explorer, но не мой по умолчанию, который является Firefox. Я пробовал на нескольких компьютерах ...

Мне все равно, каким способом вызывать ссылку в браузере по умолчанию, но это должно быть по умолчанию

Ответы [ 3 ]

4 голосов
/ 11 ноября 2010

Вы пытались просто запустить:

Process.Start("http://stackoverflow.com");

Мое тестовое приложение (ниже) открывает сайт в браузере по умолчанию:

using System;
using System.Diagnostics;

namespace ProcessStartSample
{
    class Program
    {
        static void Main(string[] args)
        {
            Process.Start("http://stackoverflow.com");
        }
    }
}

Другими словами, пусть операционная система делаеттяжелая работа по выяснению, какой браузер по умолчанию для вас!=)

1 голос
/ 11 ноября 2010

Просто попробуйте это:)

Process.Start("http://stackoverflow.com");

И если вы хотите найти браузер по умолчанию, вам нужно открыть ключ HKEY_CLASSES_ROOT\http\shell\open\command\default.

Обратите внимание: http, а не htmlFile

РЕДАКТИРОВАТЬ:

КОД:

RegistryKey registryKey = Registry.ClassesRoot.OpenSubKey(@"http\shell\open\command", false);
string value = registryKey.GetValue("").ToString();
0 голосов
/ 11 ноября 2010

Windows автоматически запустит браузер по умолчанию в системе пользователя, если вы просто укажете URL для открытия:

Process.Start("http://www.google.com/");

Нет необходимости в каких-либо хитрых трюках с реестром, если только вы не пытаетесь выяснить , какой браузер установлен по умолчанию.

...