2012-05-08 26 views

Trả lời

57
Process.Start("http://www.google.com"); 
19

Process.Start ([url]] thực sự là câu trả lời, trong tất cả trừ trường hợp cực kỳ thích hợp. Tuy nhiên, để hoàn thành, tôi sẽ đề cập rằng chúng tôi đã gặp phải trường hợp thích hợp như vậy: nếu bạn đang cố mở url "tệp: \" (trong trường hợp của chúng tôi, để hiển thị bản sao được cài đặt cục bộ của trợ giúp web của chúng tôi), khi khởi chạy từ trình bao, các tham số tới url đã bị loại bỏ.

chúng tôi giải pháp khá hackish, mà tôi không khuyên bạn nên trừ khi bạn gặp một vấn đề với các giải pháp "đúng", nhìn một cái gì đó như thế này:

Trong xử lý nhấp chuột cho nút:

string browserPath = GetBrowserPath(); 
if (browserPath == string.Empty) 
    browserPath = "iexplore"; 
Process process = new Process(); 
process.StartInfo = new ProcessStartInfo(browserPath); 
process.StartInfo.Arguments = "\"" + [whatever url you're trying to open] + "\""; 
process.Start(); 

chức năng xấu xí mà bạn không nên sử dụng trừ khi Process.Start ([url của bạn]) không làm những gì bạn mong đợi nó sẽ:

private static string GetBrowserPath() 
{ 
    string browser = string.Empty; 
    RegistryKey key = null; 

    try 
    { 
     // try location of default browser path in XP 
     key = Registry.ClassesRoot.OpenSubKey(@"HTTP\shell\open\command", false); 

     // try location of default browser path in Vista 
     if (key == null) 
     { 
      key = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http", false); ; 
     } 

     if (key != null) 
     { 
      //trim off quotes 
      browser = key.GetValue(null).ToString().ToLower().Replace("\"", ""); 
      if (!browser.EndsWith("exe")) 
      { 
       //get rid of everything after the ".exe" 
       browser = browser.Substring(0, browser.LastIndexOf(".exe") + 4); 
      } 

      key.Close(); 
     } 
    } 
    catch 
    { 
     return string.Empty; 
    } 

    return browser; 
} 
+0

thanks for the info thêm –

+1

Đây là mã hóa cực kỳ tốt đẹp – BoundForGlory

+1

Câu trả lời này có thể sử dụng bản cập nhật để bao gồm Win8 và Win10. (Nếu ai đó kết thúc việc triển khai nó, hãy chỉnh sửa câu trả lời này để bao gồm nó!) – ANeves

Các vấn đề liên quan