2012-01-23 52 views
0

我有一個下拉列表,其中我有瀏覽器列表,如「Firefox,Chrome,IE」, 現在我想,當我運行我的應用程序並選擇從下拉瀏覽器我的應用程序應運行在特定的瀏覽器,任何人都可以幫助我,因爲我花了很多時間在互聯網上搜索,迄今尚未找到任何結果。我正在使用C#.NET 感謝您的支持。使用下拉式瀏覽器列​​表運行應用程序

+0

這是爲Web應用程序在Windows應用程序啓動器,Windows Forms和asp.net或者還有什麼?你是否明白,從Web應用程序中,一旦用默認瀏覽器打開或用戶手動,即使在非默認瀏覽器中,服務器端或客戶端代碼也不能(也不應該)在客戶端啓動chrome或firefox等進程機? –

+0

這個問題有點含糊。你知道最終用戶擁有所有的瀏覽器嗎?如果不是,那麼你知道他們有哪些?你知道這些應用程序的文件路徑將在最終用戶的計算機上嗎? – annonymously

回答

0

您可以在註冊表下的HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet查看安裝的註冊瀏覽器(在我的機器上,IE,Firefox,Chrome和Opera都顯示)。

每個瀏覽器的子項下的默認值是它的名稱。然後,您可以查看子項shell\open\command下的可執行文件以運行。

下面是一些例子代碼,我寫道:

private class Browser { 
     public string Name { get; set; } 
     public string Exe { get; set; } 
     public override string ToString() { 
      return Name; 
     } 
    } 

    private List<Browser> Browsers; 

    private void Form1_Load(object sender, EventArgs e) { 
     Browsers = new List<Browser>(); 
     const string browserListKey = @"SOFTWARE\Clients\StartMenuInternet"; 
     using (var clients = Registry.LocalMachine.OpenSubKey(browserListKey)) { 
      foreach (var client in clients.GetSubKeyNames()) { 
       using (var clientKey = clients.OpenSubKey(client)) { 
        string name = (string)clientKey.GetValue(string.Empty); 
        using (var commandKey = clientKey.OpenSubKey(@"shell\open\command")) { 
         string exe = (string)commandKey.GetValue(string.Empty); 
         Browsers.Add(new Browser() { Name = name, Exe = exe }); 
        } 
       } 
      } 
     } 
     comboBox1.DataSource = Browsers; 
    } 

    private void button1_Click(object sender, EventArgs e) { 
     string exe = ((Browser)comboBox1.SelectedItem).Exe; 
     Process.Start(exe); 
    } 
+0

夥計這是一個爲我公司內部使用而開發的Windows應用程序,關於最終用戶的事情,我們是最終用戶,他們實際上後來會將其用於測試目的 – user1100199

相關問題