2012-06-12 12 views
6

używam tego, aby uzyskać ścieżkę i plik wykonywalny z domyślnej przeglądarce internetowej:Otwórz plik HTML za pomocą domyślnej przeglądarki internetowej

public static string DefaultWebBrowser 
     { 
      get 
      { 

       string path = @"\http\shell\open\command"; 

       using (RegistryKey reg = Registry.ClassesRoot.OpenSubKey(path)) 
       { 
        if (reg != null) 
        { 
         string webBrowserPath = reg.GetValue(String.Empty) as string; 

         if (!String.IsNullOrEmpty(webBrowserPath)) 
         { 
          if (webBrowserPath.First() == '"') 
          { 
           return webBrowserPath.Split('"')[1]; 
          } 

          return webBrowserPath.Split(' ')[0]; 
         } 
        } 

        return null; 
       } 
      } 
     } 

oraz:

protected static bool Run(string FileName, string Args) 
     { 
      try 
      { 
       Process proc = new Process(); 

       processInfo.FileName = FileName; 
       proc.StartInfo.WindowStyle = ProcessWindowStyle.Normal; 

       if(Args != null) proc.StartInfo.Arguments = Args; 

       proc.Start(); 

       return true; 
      } 
      catch (Exception) { } 

      return false; 
     } 

Potem zadzwonić do przeglądarki internetowej: Run(DefaultWebBrowser, "foo.html")

Pytanie brzmi: Mam problem, powyższa funkcja wywołuje firefox i IE (dwie przeglądarki zainstalowane na moim komputerze) zamiast Internet Explorera, domyślnej przeglądarki internetowej. Nie mam pojęcia, jak to naprawić. Każda pomoc jest bardzo doceniana. Z góry dziękuję.

EDIT

I pobraniu i zainstalowaniu Google Chrome, ustawić ją jako domyślną przeglądarkę internetową, ale dziwnie powyższy błąd nie dzieje się z nim.

Odpowiedz

24

Można wymienić cały ten kod z

System.Diagnostics.Process.Start(pathToHtmlFile); 

to będzie automatycznie uruchomić domyślną przeglądarkę, czy raczej spojrzeć domyślnego programu obsługi dla .htm lub .html plikami i używać.

Teraz, gdy Firefox jest ustawiony jako domyślny, może to czasami powodować dziwne wyjątki (myślę, że jeśli Firefox uruchamia się po raz pierwszy), możesz chcieć zrobić to za pomocą try/catch.

+2

Próbowałem. Ale w niektórych plikach .htm/.html nie są otwierane za pomocą przeglądarki internetowej. rozszerzenia .htm/.html mogą być na przykład powiązane z edytorem tekstu lub IDE. – Jack

+0

Chociaż domyślny program _can_ może zostać zmieniony, nie powinieneś mieć problemu. Zobacz [to] (http://support.microsoft.com/kb/224816), aby uzyskać wskazówki dotyczące używania 'ShellExecute' do uruchamiania domyślnej przeglądarki internetowej, a także ścieżek dla niektórych kluczy rejestru (które prawdopodobnie już wiesz z). W końcu użytkownik może najprawdopodobniej interweniować, zmieniając niektóre domyślne programy ... ale nie powinieneś martwić się tym zbytnio, ponieważ jest to nieuniknione do pewnego stopnia. – Spooky

+1

Jak powiedział Jack, to okropny pomysł. Osobiście posiadam edytor ustawiony jako domyślna aplikacja do otwierania plików HTML i denerwuje mnie to, że programy nie otwierają pliku readme w tym edytorze zamiast domyślnej przeglądarki. Różnica między "domyślną przeglądarką" i "domyślną aplikacją do otwierania kodu HTML" w systemie Windows. – Nyerguds

0

Dla tych, którzy nie mają domyślną html stowarzyszenie do przeglądarki, użyj

System.Diagnostics.Process.Start("Chrome", Uri.EscapeDataString(pathToHtmlFile))

+0

Zakłada się, że użytkownik ma zainstalowaną przeglądarkę chrome. – Jack

+0

Kod DefaultWebBrowser jest podany na górze strony –

+0

Powrót do używania tego kodu, jeśli chcesz, aby był bardziej ogólny (przykro było, że było oczywiste). –

0

Im za pomocą kodu, gdzie Patrzę na pliki exe pierwszy. Na przykład, jeśli exsists chrome.exe (w domyślnej ścieżce) w przeciwnym razie istnieje firefox.exe lub launcher.exe (dla opery) itd ... jeśli nie istnieje, spróbuj uruchomić iexplore.exe z parametrem pathToHtmlFile. To jest moje rozwiązanie, w którym korzystam z zewnętrznej konfiguracji, gdzie zestaw mojej przeglądarki nie ma znaczenia, co jest ustawione domyślnie w systemie operacyjnym.

Powiązane problemy