我试图从Windows窗体提供到我公司网站的链接。我想表现良好,并使用用户的首选浏览器启动。从Windows窗体应用程序在用户的默认浏览器中打开URL的最佳方法是什么?
esbemjvw1#
ProcessStartInfo sInfo = new ProcessStartInfo("http://example.com/"); Process.Start(sInfo);
kadbb4592#
using System.Diagnostics; Process.Start("http://www.google.com/");
这种方法对我很有效,但我可能会错过一些重要的东西。
zujrkrfu3#
对于那些得到“Win32Exception:系统找不到指定的文件”这应该做的工作:
ProcessStartInfo psInfo = new ProcessStartInfo { FileName = "https://www.google.com", UseShellExecute = true }; Process.Start(psInfo);
here进一步描述了Shell执行对我来说,这个问题是由于.NET运行时所描述的here
2ul0zpep4#
这是两个世界中最好的:
Dim sInfo As New ProcessStartInfo("http://www.mysite.com") Try Process.Start(sInfo) Catch ex As Exception Process.Start("iexplore.exe", sInfo.FileName) End Try
我发现Blorgbeard提供的答案在Windows 8设备上运行桌面应用程序时会失败。根据Camillo的观点,您应该尝试使用用户的默认浏览器应用程序打开它,但是如果没有分配浏览器应用程序,则会抛出未处理的异常。我把这个作为答案贴出来,因为它在处理异常的同时仍然试图在默认浏览器中打开链接。
8cdiaqws5#
通常情况下,如果默认浏览器已经在操作系统上配置好,则指定URL的Process.Start方法不起作用。你可以尝试这样做:
Process.Start(new ProcessStartInfo("cmd", $"/c start {m_urlYouWantToOpen}") { CreateNoWindow = true });
我希望它能为你工作!
voj3qocg6#
上面的方法是完美的,我想推荐这种方法,你可以在那里传递你的参数。
Process mypr; mypr = Process.Start("iexplore.exe", "pass the name of website");
6条答案
按热度按时间esbemjvw1#
kadbb4592#
这种方法对我很有效,但我可能会错过一些重要的东西。
zujrkrfu3#
对于那些得到“Win32Exception:系统找不到指定的文件”
这应该做的工作:
here进一步描述了Shell执行
对我来说,这个问题是由于.NET运行时所描述的here
2ul0zpep4#
这是两个世界中最好的:
我发现Blorgbeard提供的答案在Windows 8设备上运行桌面应用程序时会失败。根据Camillo的观点,您应该尝试使用用户的默认浏览器应用程序打开它,但是如果没有分配浏览器应用程序,则会抛出未处理的异常。
我把这个作为答案贴出来,因为它在处理异常的同时仍然试图在默认浏览器中打开链接。
8cdiaqws5#
通常情况下,如果默认浏览器已经在操作系统上配置好,则指定URL的Process.Start方法不起作用。
你可以尝试这样做:
我希望它能为你工作!
voj3qocg6#
上面的方法是完美的,我想推荐这种方法,你可以在那里传递你的参数。