2010-03-03 99 views
20

如何查找機器上安裝的所有瀏覽器及其詳細信息。如何查找機器上安裝的所有瀏覽器

+0

什麼你來自哪個角度,哇indows表單應用程序? –

+0

我正在尋找一個能夠做到這一點的庫,一個控制檯應用程序可以做 –

+0

看起來你在Windows平臺下面有一個很好的答案。在Non-Windows方面,我會創建一個豐富的最小公分母bourne shell腳本,它將檢查操作系統類型/分佈,檢查相關的軟件包管理器,檢查文​​件系統的二進制文件等。讓它遠離遠程站點的腳本,但是你不能保證在很多Unix平臺上運行。 –

回答

26

快速谷歌搜索給了我Finding All Installed Browsers in Windows XP and Vista

在我一直在工作的應用程序,我需要找到被安裝在用戶的機器上的所有瀏覽器。最好的辦法是查看HKEY_LOCAL_MACHINE \ SOFTWARE \ Clients \ StartMenuInternet下的註冊表。這是瀏覽器製造商根據this MSDN article被告知要放置其信息的地方。

+5

對我來說,快速谷歌搜索給了我這個職位;-) 感謝發佈! +1 –

+0

+1,很好的回答! – rikpg

+3

...但這裏有一個我碰到的問題:在64位上,密鑰被寫入HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node \ Clients \ StartMenuInternet。 – SepehrM

4

掃描Program Files文件夾中已知瀏覽器可執行文件的文件名的內容。

+2

+1,因爲它是一個選項,並且記得還要掃描64位程序文件。 –

3

該解決方案似乎爲我工作:

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

享受編碼! Chagbert。

3

一個簡短的回答:

CS:

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 
         } 
} 

的應用程序(WPF)發動所有已安裝的瀏覽器的簡單例子

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> 

結果:

enter image description here

2

Necromancing,如所提供的答案是不完整的。

第一:

HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet. 

不會得到你所有的瀏覽器。

如果您處於企業環境中,用戶將沒有管理員權限。 如果以這種方式安裝Google-Chrome和/或Chromium(不知道FF是否如此工作),那麼密鑰將只在HK_Current_User中。

此外,這不包括非Windows操作系統。 您需要詳細的代碼才能確定並覆蓋Linux + Mac系統上的所有軟件包管理系統。對於基於Debian的Windows + 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 

串助手

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; 
     } 


    } 
} 

這是實際使用:

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

您好,請問您可以添加幾行代碼來獲取默認瀏覽器?謝謝 – Mrityunjay

+0

默認瀏覽器很簡單:只需在Linux上打開URL即可,這需要在desktop-linux上安裝gvfs,通常情況下這將是gvfs。 –

相關問題