如何从 WPF 打开网页? [复制]

Posted

技术标签:

【中文标题】如何从 WPF 打开网页? [复制]【英文标题】:How to open a web page from WPF? [duplicate] 【发布时间】:2020-11-01 12:25:42 【问题描述】:

使用 Visual Studio 2019 WPF 应用 尝试使用以前对我有用的代码打开网页,但现在出现错误

我收到一条错误消息说 System.ComponentModel.Win32Exception: '系统找不到指定的文件。'

也想在Chrome中打开页面

using System;
using System.Windows;
using System.Diagnostics;

private void Button_Click_1(object sender, RoutedEventArgs e)
    

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

    

【问题讨论】:

尝试使用 https 而不是 http 【参考方案1】:

我猜你正在使用 .net 核心。您应该将ProcessStartInfo 传递给Process.Start()。如果您希望默认浏览器打开,您可以调用 cmd 为您完成工作。如果您需要特定的浏览器,您也可以提供该浏览器的进程名称。

对于默认浏览器,您可以执行类似的操作

string url = "https://www.google.com";
Process.Start(new ProcessStartInfo("cmd", $"/c start url")  CreateNoWindow = true );

【讨论】:

行得通谢谢 -- 我怎样才能让网页在 Chrome 中打开 这是实际工作的代码。还有一些其他响应,其中使用 url 作为参数调用“Explorer”,当 url 包含查询字符串参数时,该方法有时会失败。【参考方案2】:

要在 Chrome 中打开 URL,请填充 ProcessStartInfo() 类属性,如下所示:

using System.Diagnostics;
using System.Windows;

namespace WpfApp1

    public partial class MainWindow : Window
    
        public MainWindow()
        
            InitializeComponent();
        

        private void Button_Click(object sender, RoutedEventArgs e)
        
            string url = "https://www.google.com";

            ProcessStartInfo startInfo = new ProcessStartInfo();

            // To open url in Chrome, specify startInfo.File = "chrome.exe"
            // To open url in FireFox specify firefox.exe
            // To open url in Microsoft Edge specify msedge.exe
            // To open url in default browser specify explorer.exe

            startInfo.FileName = "chrome.exe";
            startInfo.Arguments = url;
            Process.Start(startInfo);
        
    

【讨论】:

这依赖于安装在用户机器上的特定浏览器(并且也在路径上)。依赖这些东西是一种不好的做法,而是使用它们作为“默认”浏览器并让它处理 url。 Jamal - 我喜欢你的代码,我确实尝试过运行它,但是当它到达 Process.Start 时,它给了我我得到的原始错误 - 我收到一条错误消息,说 System.ComponentModel .Win32Exception: '系统找不到指定的文件。' - 也许我错过了一个参考,但我不知道如何诊断它,你能帮忙吗?谢谢 @Bigshop,您能否创建一个新的 WPF 应用程序并看看会发生什么。也许您缺少一些参考资料。我之前评论过这样做,但是一些角色删除了我的 cmets!

以上是关于如何从 WPF 打开网页? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

WPF 打开新窗口 如何设置 焦点还在原来的窗口 谢谢

WPF 打开网页

QT打开一个网页,并获取网页内容,该怎么处理

C# webbrowser如何打开https开头的网页

DELPHI如何实现打开某一个网页没webbrowser组件

如何在地址栏打开一个网页指定IFRAME进行显示