如何在标签中打开多个链接

时间:2019-07-04 07:13:32

标签: c#

我正在做某种网络开瓶器。

因此,基本上,如果您键入链接,例如www.google.com/123456,它将删除最后两个字符并应添加新的字符(我需要实现这一点)。

我现在的问题是,我根本无法打开任何链接。

我在stackoverflow上看到人们正在使用Process.Start(),所以我尝试了它,但是它说,系统找不到指定的文件。

static void Main(string[] args)
{
    Console.WriteLine($"Type your link here: ");
    string url = Console.ReadLine();
    url = url.Substring(0, url.Length - 2);

    GoToSite(url);

    Console.ReadKey();
}

public static void GoToSite(string url)
{
    Process.Start(url);
}

我希望打开链接,如果输入为www.google.com/123,则输出应为www.google.com/1

2 个答案:

答案 0 :(得分:2)

Process.Start(string url)在.NET Core和.NET Framework上的工作方式不同。

对于.NET Core,您需要这样做:

public static void GoToSite(string url)
{
    try
    {
        Process.Start(url);
    }
    catch
    {
        if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
        {
            url = url.Replace("&", "^&");
            Process.Start(new ProcessStartInfo("cmd", $"/c start {url}") { CreateNoWindow = true });
        }
        else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
        {
            Process.Start("xdg-open", url);
        }
        else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
        {
            Process.Start("open", url);
        }
        else
        {
            throw;
        }
    }
}

来源:https://brockallen.com/2016/09/24/process-start-for-urls-on-net-core/

答案 1 :(得分:0)

我认为这就是您想要的?

确保已安装chrome,并在全局os(windows)路径中设置了chrome的完整路径。

然后,您只需调用Process.Start("chrome.exe")即可启动谷歌浏览器。

 static void Main(string[] args)
{
    Console.WriteLine($"Type your link here: ");
    string url = Console.ReadLine();    
    url = url.Substring(0, url.Length - 3);
    GoToSite(url);
    Console.ReadKey();
}

public static void GoToSite(string url)
{
      string chromeArgs = $"--new-window {url}";
      Process.Start("chrome.exe", chromeArgs);  
}