Udostępnij za pośrednictwem


Programowe uruchamianie domyślnej przeglądarki internetowej przy użyciu języka Visual C#

W tym artykule pokazano, jak uruchomić domyślną przeglądarkę internetową przy użyciu języka Visual C#.

Oryginalna wersja produktu: Visual Studio
Oryginalny numer KB: 305703

Uwaga 16.

Określ adres URL, FTP lub plik do otwarcia

Można określić adres URL, plik lub adres FTP (File Transfer Protocol). Wszystkie trzy z tych przypisań są prawidłowe:

string target= "http://www.microsoft.com";
string target = "ftp://ftp.microsoft.com";
string target = "C:\\Program Files\\Microsoft Visual Studio\\INSTALL.HTM";

Użyj metody Start klasy Process, aby uruchomić przeglądarkę

Klasa Process zawiera metodę statyczną Start . Ponieważ jest to metoda statyczna, można wywołać Start ją bez wystąpienia Process klasy.

System.Diagnostics.Process.Start(target);

Aby uzyskać więcej informacji na temat Process klasy, zobacz Klasa procesu.

Zapewnianie obsługi wyjątków

Ponieważ korzystasz z właściwości domyślnej UseShellExecute podczas wywoływania Start metody, nie musisz jawnie wysyłać zapytań do rejestru, aby określić, która przeglądarka jest domyślna. Jeśli jednak używasz tej metody na komputerze, na którym nie zainstalowano przeglądarki, wystąpi wyjątek. Ten wyjątek należy przechwycić, aby można było wykonać odpowiednie działania.

Ten przykład jawnie przechwytuje błąd wygenerowany, gdy nie znaleziono niezbędnego klucza rejestru i wskazuje, że nie zainstalowano przeglądarki. Ponadto jest udostępniana ogólna procedura obsługi wyjątków dla innych błędów, które mogą wystąpić. Blok try...catch jest pokazany na pełnej liście kodu.

Kompletny przykład kodu

string target= "http://www.microsoft.com";
//Use no more than one assignment when you test this code.
//string target = "ftp://ftp.microsoft.com";
//string target = "C:\\Program Files\\Microsoft Visual Studio\\INSTALL.HTM";
try
{
    System.Diagnostics.Process.Start(target);
}
catch (System.ComponentModel.Win32Exception noBrowser)
{
    if (noBrowser.ErrorCode==-2147467259)
    MessageBox.Show(noBrowser.Message);
}
catch (System.Exception other)
{
    MessageBox.Show(other.Message);
}

Rozwiązywanie problemów

Ten kod jest bardzo zależny od skojarzeń typu aplikacji w HKEY_CLASSES_ROOT (HKCR) rejestru. Może to prowadzić do nieoczekiwanych wyników i wyjątków, jeśli rejestr jest uszkodzony. Ponadto typy plików i rozszerzenia mogą być skojarzone z aplikacjami innymi niż przeglądarka. Na przykład pliki HTML lub HTML mogą być skojarzone z oprogramowaniem do tworzenia aplikacji internetowych zamiast przeglądarki.