.net 从Windows窗体打开URL

mznpcxlj  于 2023-10-21  发布在  .NET
关注(0)|答案(6)|浏览(162)

我试图从Windows窗体提供到我公司网站的链接。我想表现良好,并使用用户的首选浏览器启动。
从Windows窗体应用程序在用户的默认浏览器中打开URL的最佳方法是什么?

esbemjvw

esbemjvw1#

ProcessStartInfo sInfo = new ProcessStartInfo("http://example.com/");  
Process.Start(sInfo);
kadbb459

kadbb4592#

using System.Diagnostics;

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

这种方法对我很有效,但我可能会错过一些重要的东西。

zujrkrfu

zujrkrfu3#

对于那些得到“Win32Exception:系统找不到指定的文件”
这应该做的工作:

ProcessStartInfo psInfo = new ProcessStartInfo
{
   FileName = "https://www.google.com",
   UseShellExecute = true
};
Process.Start(psInfo);

here进一步描述了Shell执行
对我来说,这个问题是由于.NET运行时所描述的here

2ul0zpep

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的观点,您应该尝试使用用户的默认浏览器应用程序打开它,但是如果没有分配浏览器应用程序,则会抛出未处理的异常。
我把这个作为答案贴出来,因为它在处理异常的同时仍然试图在默认浏览器中打开链接。

8cdiaqws

8cdiaqws5#

通常情况下,如果默认浏览器已经在操作系统上配置好,则指定URL的Process.Start方法不起作用。
你可以尝试这样做:

Process.Start(new ProcessStartInfo("cmd", $"/c start {m_urlYouWantToOpen}") { CreateNoWindow = true });

我希望它能为你工作!

voj3qocg

voj3qocg6#

上面的方法是完美的,我想推荐这种方法,你可以在那里传递你的参数。

Process mypr;
mypr = Process.Start("iexplore.exe", "pass the name of website");

相关问题