2010-03-03 8 views
20

Wie kann ich alle Browser und deren Details finden, die auf einem Computer installiert sind?So finden Sie alle auf einem Computer installierten Browser

+0

Was Winkel kommst du aus, aw Indows Formulare App? –

+0

Ich kümmere mich um eine Bibliothek, die dies tun kann, würde eine Konsolenanwendung tun –

+0

Sieht aus wie Sie haben eine gute Antwort unten auf Windows-Plattformen. Auf der Nicht-Windows-Seite würde ich ein Bourne-Shell-Skript mit dem kleinsten gemeinsamen Nenner erstellen, das den OS-Typ/die Distribution prüft, die zugehörigen Paketmanager überprüft, die Dateisysteme auf Binärdateien prüft, usw. Wäre schön, einfach zu sein Lassen Sie Ihr Skript von einer entfernten Seite laufen, aber wget wird auf vielen Unix-Plattformen nicht garantiert. –

Antwort

26

Eine schnelle Google-Suche gab mir Finding All Installed Browsers in Windows XP and Vista

In der Anwendung, die ich gearbeitet habe, musste ich alle Browser finden, die auf dem Computer eines Benutzers installiert sind. Der beste Weg, dies zu tun, ist in der Registrierung unter HKEY_LOCAL_MACHINE \ SOFTWARE \ Clients \ StartMenuInternet zu suchen. Dies ist, wo Browser-Hersteller aufgefordert werden, ihre Informationen zu setzen, per this MSDN article.

+5

Für mich hat mir eine schnelle Google-Suche diesen Beitrag gegeben ;-) Danke fürs Posting! +1 –

+0

+1, große Antwort! – rikpg

+3

... Aber hier ist ein Fehler, den ich getroffen habe: Auf 64bit werden die Schlüssel in HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node \ Clients \ StartMenuInternet geschrieben. – SepehrM

4

Scannen Sie den Inhalt des Ordners Programme nach den Dateinamen bekannter ausführbarer Browserdateien.

+2

+1, weil es eine Option ist, und denken Sie daran, auch 64-Bit-Programmdateien zu scannen. –

3

Diese Lösung scheint für mich zu arbeiten: Codierung

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(); 

Viel Spaß! Chagbert.

3

Eine kurze Antwort:

using (RegistryKey hklm = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32)) 
{ 
    RegistryKey webClientsRootKey = hklm.OpenSubKey(@"SOFTWARE\Clients\StartMenuInternet"); 
    if (webClientsRootKey != null) 
     foreach (var subKeyName in webClientsRootKey.GetSubKeyNames()) 
      if (webClientsRootKey.OpenSubKey(subKeyName) != null) 
       if (webClientsRootKey.OpenSubKey(subKeyName).OpenSubKey("shell") != null) 
        if (webClientsRootKey.OpenSubKey(subKeyName).OpenSubKey("shell").OpenSubKey("open") != null) 
         if (webClientsRootKey.OpenSubKey(subKeyName).OpenSubKey("shell").OpenSubKey("open").OpenSubKey("command") != null) 
         { 
          string commandLineUri = (string)webClientsRootKey.OpenSubKey(subKeyName).OpenSubKey("shell").OpenSubKey("open").OpenSubKey("command").GetValue(null); 
          //your turn 
         } 
} 

Einfaches Beispiel einer Anwendung (WPF) alle installierten Browser zu starten:

cs:

using System; 
using System.Collections.Generic; 
using System.Diagnostics; 
using System.Drawing; 
using System.IO; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Data; 
using System.Windows.Documents; 
using System.Windows.Input; 
using System.Windows.Media; 
using System.Windows.Media.Imaging; 
using System.Windows.Navigation; 
using System.Windows.Shapes; 
using Microsoft.Win32; 

namespace WpfApplication94 
{ 
    /// <summary> 
    /// Interaction logic for MainWindow.xaml 
    /// </summary> 
    public partial class MainWindow : Window 
    { 
     public MainWindow() 
     { 
      InitializeComponent(); 

      List<ViewerApplication> viewers = new List<ViewerApplication>(); 
      using (RegistryKey hklm = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32)) 
      { 
       RegistryKey webClientsRootKey = hklm.OpenSubKey(@"SOFTWARE\Clients\StartMenuInternet"); 
       if (webClientsRootKey != null) 
        foreach (var subKeyName in webClientsRootKey.GetSubKeyNames()) 
         if (webClientsRootKey.OpenSubKey(subKeyName) != null) 
          if (webClientsRootKey.OpenSubKey(subKeyName).OpenSubKey("shell") != null) 
           if (webClientsRootKey.OpenSubKey(subKeyName).OpenSubKey("shell").OpenSubKey("open") != null) 
            if (webClientsRootKey.OpenSubKey(subKeyName).OpenSubKey("shell").OpenSubKey("open").OpenSubKey("command") != null) 
            { 
             string commandLineUri = (string)webClientsRootKey.OpenSubKey(subKeyName).OpenSubKey("shell").OpenSubKey("open").OpenSubKey("command").GetValue(null); 
             if (string.IsNullOrEmpty(commandLineUri)) 
              continue; 
             commandLineUri = commandLineUri.Trim("\"".ToCharArray()); 
             ViewerApplication viewer = new ViewerApplication(); 
             viewer.Executable = commandLineUri; 
             viewer.Name = (string)webClientsRootKey.OpenSubKey(subKeyName).GetValue(null); 
             viewers.Add(viewer); 
            } 
      } 
      this.listView.ItemsSource = viewers; 
     } 

     private void Button_Click(object sender, RoutedEventArgs e) 
     { 
      Process.Start(((sender as Control).Tag as ViewerApplication).Executable, @"http://news.google.de"); 
     } 
    } 

    public class ViewerApplication 
    { 
     public string Name { get; set; } 
     public string Executable { get; set; } 
     public Icon Icon 
     { 
      get { return System.Drawing.Icon.ExtractAssociatedIcon(this.Executable); } 
     } 
     public ImageSource ImageSource 
     { 
      get 
      { 
       ImageSource imageSource; 
       using (Bitmap bmp = Icon.ToBitmap()) 
       { 
        var stream = new MemoryStream(); 
        bmp.Save(stream, System.Drawing.Imaging.ImageFormat.Png); 
        imageSource = BitmapFrame.Create(stream); 
       } 
       return imageSource; 
      } 
     } 
    } 
} 

XAML:

<Window x:Class="WpfApplication94.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525"> 
     <ListView x:Name="listView"> 
      <ListView.ItemTemplate> 
       <DataTemplate> 
        <Button Tag="{Binding}" Click="Button_Click"> 
         <StackPanel Orientation="Horizontal"> 
          <Image Source="{Binding ImageSource}" /> 
          <TextBlock Text="{Binding Name}" /> 
         </StackPanel> 
        </Button> 
       </DataTemplate> 
      </ListView.ItemTemplate> 
     </ListView> 
</Window> 

Ergebnis:

enter image description here

2

Necromancing, da die gegebenen Antworten sind unvollständig.

Erstens:

HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet. 

werden Sie nicht alle Browser erhalten.

Wenn Sie sich in einer Unternehmensumgebung befinden, hat der Benutzer keine Administratorrechte. Wenn Google-Chrome und/oder Chromium auf diese Weise installiert sind (weiß nicht, ob FF so funktioniert), dann ist der Schlüssel nur in HK_Current_User.

Dies gilt auch für Nicht-Windows-Betriebssysteme. Sie benötigen einen ausgefeilten Code, um das gesamte Paketverwaltungssystem auf Linux + Mac-Systemen zu ermitteln und abzudecken.

Hier Code für Windows + Debian-basierte Linuces

PlatformInfo:

using System.Diagnostics; 


namespace PlatformInfo 
{ 

    public delegate int BrowserRatingCallback_t(string packageName); 


    public class BrowserInfo : System.IComparable<BrowserInfo> 
    { 
     public string Name; 
     public string Path; 
     public int Preference; 


     public int CompareTo(BrowserInfo other) 
     { 
      if (this == null || other == null) 
       return 0; 

      int pref = this.Preference.CompareTo(other.Preference); 

      if (pref != 0) 
       return pref; 

      return string.Compare(this.Name, other.Name, true); 
     } // End Function CompareTo 


     public static int DefaultBrowserRating(string packageName) 
     { 
      if (EmbeddedWebServer.StringHelpers.Contains(packageName, "Google")) return 1; 
      if (EmbeddedWebServer.StringHelpers.Contains(packageName, "Chromium")) return 2; 
      if (EmbeddedWebServer.StringHelpers.Contains(packageName, "Opera")) return 3; 
      if (EmbeddedWebServer.StringHelpers.Contains(packageName, "Firefox")) return 4; 
      if (EmbeddedWebServer.StringHelpers.Contains(packageName, "Midori")) return 5; 
      if (EmbeddedWebServer.StringHelpers.Contains(packageName, "Safari")) return 9000; 
      if (EmbeddedWebServer.StringHelpers.Contains(packageName, "Edge")) return 9998; 
      if (EmbeddedWebServer.StringHelpers.Contains(packageName, "Explorer")) return 9999; 

      return 9997; 
     } 


     public static System.Collections.Generic.List<BrowserInfo> GetPreferableBrowser() 
     { 
      return GetPreferableBrowser(BrowserInfo.DefaultBrowserRating); 
     } 


     public static System.Collections.Generic.List<BrowserInfo> GetPreferableBrowser(BrowserRatingCallback_t browserRatingCallback) 
     { 
      if (System.Environment.OSVersion.Platform != System.PlatformID.Unix) 
       return Win.GetPreferableBrowser(browserRatingCallback); 
      // ELSE: Linux/Unix/MacOS 

      if (DistroInfo.PackageManager == DistroInfo.PackageManager_t.dpkg) 
       return dpkg.GetInstalledBrowsers(browserRatingCallback); 

      return new System.Collections.Generic.List<BrowserInfo>(); 
     } 


    } // End Class BrowserInfo : System.IComparable<BrowserInfo> 



    public class DistroInfo 
    { 

     public enum Distro_t : int 
     { 
      Debian 
      ,Ubuntu 
      ,Mint 

      ,Arch 
      ,Gentoo 

      ,CentOS 
      ,Fedora 
      ,RedHat 


      ,Mageia 
      ,Suse 

      ,Mandrake 
      ,YellowDog 

      ,Slackware 

      ,SunJDS 
      ,Solaris 
      ,UnitedLinux 


      ,Unknown 
     } // End Enum Distro_t 


     public enum PackageManager_t : int 
     { 
      dpkg 
      ,rpm 
      ,portage 
      ,pacman 
      ,pkgtool 
      ,ips 
      ,unknown 
     } // End Enum PackageManager_t 


     public enum DistroFamily_t : int 
     { 
      Debian, RedHat, Unknown 
     } // End Enum DistroFamily_t 


     public static DistroFamily_t DistroFamily 
     { 
      get { 

       if (Distro == Distro_t.Ubuntu) 
        return DistroFamily_t.Debian; 

       if (Distro == Distro_t.Debian) 
        return DistroFamily_t.Debian; 

       if (Distro == Distro_t.Mint) 
        return DistroFamily_t.Debian; 


       if (Distro == Distro_t.RedHat) 
        return DistroFamily_t.RedHat; 

       if (Distro == Distro_t.CentOS) 
        return DistroFamily_t.RedHat; 

       if (Distro == Distro_t.Fedora) 
        return DistroFamily_t.RedHat; 

       if (Distro == Distro_t.Suse) 
        return DistroFamily_t.RedHat; 

       if (Distro == Distro_t.Mageia) 
        return DistroFamily_t.RedHat; 

       if (Distro == Distro_t.Mandrake) 
        return DistroFamily_t.RedHat; 

       if (Distro == Distro_t.YellowDog) 
        return DistroFamily_t.RedHat; 


       return DistroFamily_t.Unknown; 
      } 
     } // End Property DistroFamily 


     public static PackageManager_t PackageManager 
     { 
      get { 
       if (DistroFamily == DistroFamily_t.Debian) 
        return PackageManager_t.dpkg; 

       if (DistroFamily == DistroFamily_t.RedHat) 
        return PackageManager_t.rpm; 

       if(Distro == Distro_t.Arch) 
        return PackageManager_t.pacman; 

       if(Distro == Distro_t.Gentoo) 
        return PackageManager_t.portage; 

       if(Distro == Distro_t.Slackware) 
        return PackageManager_t.pkgtool; 


       if(Distro == Distro_t.Solaris) 
        return PackageManager_t.ips; 

       if(Distro == Distro_t.SunJDS) 
        return PackageManager_t.ips; 

       return PackageManager_t.unknown; 
      } 
     } // End Property PackageManager 


     // Release Files in /etc (from Unix.com) 
     // Novell SuSE---> /etc/SuSE-release 
     // Red Hat--->/etc/redhat-release, /etc/redhat_version 
     // Fedora-->/etc/fedora-release 
     // Slackware--->/etc/slackware-release, /etc/slackware-version 
     // Old Debian--->/etc/debian_release, /etc/debian_version 
     // New Debian--->/etc/os-release 
     // Mandrake--->/etc/mandrake-release 
     // Yellow dog-->/etc/yellowdog-release 
     // Sun JDS--->/etc/sun-release 
     // Solaris/Sparc--->/etc/release 
     // Gentoo--->/etc/gentoo-release 

     // cat /etc/issue 
     // CentOS Linux release 6.0 (Final) 
     // Kernel \r on an \m 

     // cat /proc/version 
     // uname -a 
     // If you are in a container, beware cat /proc/version will give the host distro, not the container one. 

     // http://unix.stackexchange.com/questions/35183/how-do-i-identify-which-linux-distro-is-running 
     public static Distro_t Distro 
     { 
      get{ 
       string issue = null; 

       if (System.IO.File.Exists("/etc/issue")) 
        issue = System.IO.File.ReadAllText("/etc/issue", System.Text.Encoding.UTF8); 

       if (EmbeddedWebServer.StringHelpers.Contains(issue, "Ubuntu")) 
        return Distro_t.Ubuntu; 

       if (System.IO.File.Exists("/etc/os-release")) 
        return Distro_t.Debian; // New Debian 

       if (System.IO.File.Exists("/etc/debian_release")) 
        return Distro_t.Debian; // Old Debian 




       if (System.IO.File.Exists("/etc/gentoo-release")) 
        return Distro_t.Gentoo; // Not yet supported 

       if (System.IO.File.Exists("/etc/SuSE-release")) 
        return Distro_t.Suse; 



       if (EmbeddedWebServer.StringHelpers.Contains(issue, "CentOS")) 
        return Distro_t.CentOS; 

       if (System.IO.File.Exists("/etc/fedora-release")) 
        return Distro_t.Fedora; 

       if (System.IO.File.Exists("/etc/redhat_version")) 
        return Distro_t.Fedora; 



       // Unsupported 
       if (System.IO.File.Exists("/etc/mandrake-release")) 
        return Distro_t.Mandrake; 

       if (System.IO.File.Exists("/etc/slackware-release")) 
        return Distro_t.Slackware; 

       if (System.IO.File.Exists("/etc/yellowdog-release")) 
        return Distro_t.YellowDog; 

       if (System.IO.File.Exists("/etc/yellowdog-release")) 
        return Distro_t.YellowDog; 

       if (System.IO.File.Exists("/etc/sun-release")) 
        return Distro_t.SunJDS; 

       if (System.IO.File.Exists("/etc/release")) 
        return Distro_t.Solaris; 

       if (System.IO.File.Exists("/etc/UnitedLinux-release")) 
        return Distro_t.Solaris; 

       return Distro_t.Unknown; 
      } // End Get 
     } // End Property Distro 


    } // End Class DistroInfo 



    public class dpkg 
    { 


     public static bool HasDPKG() 
     { 
      // if (System.IO.File.Exists("/usr/bin/dpkg")) return true; 
      if (DistroInfo.PackageManager == DistroInfo.PackageManager_t.dpkg) 
       return true; 

      return false; 
     } // End Function HasDPKG 


     public static bool IsPackageInstalled(string packageName) 
     { 
      Process process = new Process(); 
      process.StartInfo.FileName = "dpkg"; 
      process.StartInfo.Arguments = "-s \"" + packageName + "\""; 
      process.StartInfo.UseShellExecute = false; 
      process.StartInfo.RedirectStandardOutput = true; 
      process.StartInfo.RedirectStandardError = true; 
      process.Start(); 
      process.WaitForExit(); 
      int result = process.ExitCode; 

      if (result == 0) 
       return true; 

      return false; 
     } // End Function IsPackageInstalled 


     public static string GetExecutable(string packageName) 
     { 
      Process process = new Process(); 
      process.StartInfo.FileName = "dpkg"; 
      process.StartInfo.Arguments = "-L \"" + packageName + "\""; 
      process.StartInfo.UseShellExecute = false; 
      process.StartInfo.RedirectStandardOutput = true; 
      process.Start(); 
      //* Read the output (or the error) 
      string output = process.StandardOutput.ReadToEnd(); 
      process.WaitForExit(); 

      if (output != null) 
       output = output.Replace("\r", "\n"); 
      string[] lines = output.Split(new char[] { '\n' }, System.StringSplitOptions.RemoveEmptyEntries); 

      string executable = null; 

      foreach (string line in lines) 
      { 
       if (line.IndexOf("/bin/") != -1) 
       { 
        executable = line; 
        break; 
       } 
      } 

      return executable; 
     } // End Function GetExecutable 


     public static System.Collections.Generic.List<BrowserInfo> GetInstalledBrowsers() 
     { 
      return GetInstalledBrowsers(BrowserInfo.DefaultBrowserRating); 
     } // End Function GetInstalledBrowsers 


     public static System.Collections.Generic.List<BrowserInfo> GetInstalledBrowsers(BrowserRatingCallback_t browserRatingCallback) 
     { 

      System.Collections.Generic.List<BrowserInfo> ls = new System.Collections.Generic.List<BrowserInfo>(); 
      System.Collections.Generic.List<string> packageList = GetPossibleBrowsers(); 

      foreach (string packageName in packageList) 
      { 
       if (IsPackageInstalled(packageName)) 
       { 
        int sort = browserRatingCallback(packageName); 

        ls.Add(new BrowserInfo() 
        { 
         Name = packageName 
         ,Path = GetExecutable(packageName) 
         ,Preference = sort 
        }); 

       } // End if (isPackageInstalled(packageName)) 

      } // Next packageName 

      ls.Sort(); 

      return ls; 
     } // End Function GetInstalledBrowsers 


     public static System.Collections.Generic.List<string> GetPossibleBrowsers() 
     { 
      return SearchPackages("www-browser"); 
     } // End Function GetPossibleBrowsers 


     public static System.Collections.Generic.List<string> SearchPackages(string categoryName) 
     { 
      System.Collections.Generic.List<string> ls = new System.Collections.Generic.List<string>(); 

      Process process = new Process(); // e.g. apt-cache search www-browser 
      process.StartInfo.FileName = "apt-cache"; 
      process.StartInfo.Arguments = "search \"" + categoryName + "\""; 
      process.StartInfo.UseShellExecute = false; 
      process.StartInfo.RedirectStandardOutput = true; 
      process.StartInfo.RedirectStandardError = true; 
      process.Start(); 
      //* Read the output (or the error) 
      string output = process.StandardOutput.ReadToEnd(); 
      process.WaitForExit(); 

      if (output != null) 
       output = output.Replace("\r", "\n"); 

      string[] lines = output.Split(new char[] { '\n' }, System.StringSplitOptions.RemoveEmptyEntries); 

      foreach (string line in lines) 
      { 
       if (string.IsNullOrEmpty(line)) 
        continue; 

       int pos = line.IndexOf(" "); 
       if (pos < 0) 
        continue; 

       string packageName = line.Substring(0, pos); 
       ls.Add(packageName); 
      } // Next line 

      return ls; 
     } // End Function SearchPackages 


    } // End Class dpkg 

    public class Win 
    { 

     public static System.Collections.Generic.List<BrowserInfo> GetPreferableBrowser(BrowserRatingCallback_t browserRatingCallback) 
     { 
      System.Collections.Generic.List<BrowserInfo> ls = new System.Collections.Generic.List<BrowserInfo>(); 
      if (System.Environment.OSVersion.Platform == System.PlatformID.Unix) 
       return ls; 

      using (Microsoft.Win32.RegistryKey hklm = Microsoft.Win32.Registry.LocalMachine) 
      { 
       Microsoft.Win32.RegistryKey webClientsRootKey = hklm.OpenSubKey(@"SOFTWARE\Clients\StartMenuInternet"); 
       if (webClientsRootKey != null) 
        foreach (var subKeyName in webClientsRootKey.GetSubKeyNames()) 
         if (webClientsRootKey.OpenSubKey(subKeyName) != null) 
          if (webClientsRootKey.OpenSubKey(subKeyName).OpenSubKey("shell") != null) 
           if (webClientsRootKey.OpenSubKey(subKeyName).OpenSubKey("shell").OpenSubKey("open") != null) 
            if (webClientsRootKey.OpenSubKey(subKeyName).OpenSubKey("shell").OpenSubKey("open").OpenSubKey("command") != null) 
            { 
             string commandLineUri = (string)webClientsRootKey.OpenSubKey(subKeyName).OpenSubKey("shell").OpenSubKey("open").OpenSubKey("command").GetValue(null); 
             if (string.IsNullOrEmpty(commandLineUri)) 
              continue; 
             commandLineUri = commandLineUri.Trim("\"".ToCharArray()); 

             // viewer.Executable = commandLineUri; 
             string Name = (string)webClientsRootKey.OpenSubKey(subKeyName).GetValue(null); 

             ls.Add(new BrowserInfo() 
             { 
              Name = Name 
              , 
              Path = commandLineUri 
              , 
              Preference = browserRatingCallback(Name) 
             }); 

            } 
      } // End Using 


      using (Microsoft.Win32.RegistryKey hklm = Microsoft.Win32.Registry.CurrentUser) 
      { 
       Microsoft.Win32.RegistryKey webClientsRootKey = hklm.OpenSubKey(@"SOFTWARE\Clients\StartMenuInternet"); 
       if (webClientsRootKey != null) 
        foreach (var subKeyName in webClientsRootKey.GetSubKeyNames()) 
         if (webClientsRootKey.OpenSubKey(subKeyName) != null) 
          if (webClientsRootKey.OpenSubKey(subKeyName).OpenSubKey("shell") != null) 
           if (webClientsRootKey.OpenSubKey(subKeyName).OpenSubKey("shell").OpenSubKey("open") != null) 
            if (webClientsRootKey.OpenSubKey(subKeyName).OpenSubKey("shell").OpenSubKey("open").OpenSubKey("command") != null) 
            { 
             string commandLineUri = (string)webClientsRootKey.OpenSubKey(subKeyName).OpenSubKey("shell").OpenSubKey("open").OpenSubKey("command").GetValue(null); 
             if (string.IsNullOrEmpty(commandLineUri)) 
              continue; 
             commandLineUri = commandLineUri.Trim("\"".ToCharArray()); 

             // viewer.Executable = commandLineUri; 
             string Name = (string)webClientsRootKey.OpenSubKey(subKeyName).GetValue(null); 

             ls.Add(new BrowserInfo() 
             { 
              Name = Name 
              , 
              Path = commandLineUri 
              , 
              Preference = browserRatingCallback(Name) 
             }); 

            } 
      } // End Using 

      ls.Sort(); 
      return ls; 
     } // End Function GetPreferableBrowser 


    } 


    public class rpm 
    { 


     public rpm() 
     { 
      throw new System.NotImplementedException("TODO"); 
     } 


     // # rpm -q --whatprovides webclient 
     //links-graphic-2.1-0.pre11.1mdk 
     //lynx-2.8.5-1mdk 
     //links-2.1-0.pre13.3mdk 
     //kdebase-common-3.2.3-134.8.101mdk 
     //mozilla-1.7.2-12.2.101mdk 
     //epiphany-1.2.8-4.2.101mdk 
     //wget-1.9.1-4.2.101mdk 

     // Another rough method is apropos 
     // This lists unexpected results too, and misses firefox as well as konqueror, who didn't filled the man-pages correctly. 
     //snx]->~ > apropos browser 
     //alevt (1)   - X11 Teletext browser 
     //amrecover (8)  - Amanda index database browser 
     //elinks (1)   - lynx-like alternative character mode WWW browser 
     //gnome-moz-remote (1) - remote control of browsers. 
     //goad-browser (1)  - Graphical GOAD browser 
     //links (1)   - lynx-like alternative character mode WWW browser 
     //LinNeighborhood (1) - an SMB Network Browser 
     //lynx (1)    - a general purpose distributed information browser for the World Wide Web 
     //mozilla-1.5 (1)  - a Web browser for X11 derived from Netscape Communicator 
     //opera (1)   - a graphical web browser 
     //sensible-browser (1) - sensible editing, paging, and web browsing 
     //smbtree (1)   - A text based smb network browser 
     //www (1)    - the W3C Line Mode Browser. 
     //www-browser (1)  - a general purpose distributed information browser for the World Wide Web 
     //xfhelp (1)   - lauches an HTML browser to display online documentation for 
     //      "The Cholesterol Free Desktop Environment" 
     //viewres (1x)   - graphical class browser for Xt 
     //htsserver (1)  - offline browser server : copy websites to a local directory 
     //httrack (1)   - offline browser : copy websites to a local directory 
     //webhttrack (1)  - offline browser : copy websites to a local directory 
    } // End Class RPM 


} // End Namespace 

String-Helfer

using System; 
using System.Collections.Generic; 
using System.Text; 

namespace EmbeddedWebServer 
{ 
    internal class StringHelpers 
    { 



     public static bool Contains(string source, string value) 
     { 
      if (source == null || value == null) 
       return false; 

      return System.Globalization.CultureInfo.InvariantCulture.CompareInfo.IndexOf(source, value, System.Globalization.CompareOptions.IgnoreCase) != -1; 
     } 


    } 
} 

Und das ist die tatsächliche Nutzung:

public void OpenBrowser() 
{ 
    System.Collections.Generic.List<PlatformInfo.BrowserInfo> bi = PlatformInfo.BrowserInfo.GetPreferableBrowser(); 
    string url = "\"" + "http://127.0.0.1:" + this.m_Port.ToString() + "/Index.htm\""; 

    if (bi.Count > 0) 
    { 
     System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo(); 
     psi.FileName =bi[0].Path; 
     psi.Arguments = url; 

     System.Diagnostics.Process.Start(psi); 
     return; 
    } 

    System.Diagnostics.Process.Start(url); 
} // End Sub OpenBrowser 
+0

Hallo stefan, kannst du bitte Zeilen hinzufügen Code, um Standardbrowser zu erhalten? Danke – Mrityunjay

+0

Der Standard-Browser ist einfach: Öffnen Sie einfach die URL als Prozess - unter Linux erfordert dies die Installation von gvfs - was es normalerweise sein wird - auf dem Desktop-Linux. –

Verwandte Themen