Làm cách nào để có một nút trong ứng dụng dành cho máy tính để bàn khiến trình duyệt mặc định của người dùng khởi chạy và hiển thị URL được cung cấp bởi logic của ứng dụng.Làm cách nào để khởi chạy URL trong trình duyệt mặc định của người dùng từ ứng dụng của tôi?
30
A
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;
}
thanks for the info thêm –
Đây là mã hóa cực kỳ tốt đẹp – BoundForGlory
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