C# winform使用配置文件xml来打开对应网站或软件,Process.Start();方法报错

文章讲述了作者在Winform应用中尝试将超链接的网站地址存储到XML配置文件中,以实现动态更换网址,避免修改代码。在解析XML文件获取网址后,使用Process.Start()方法启动链接时遇到异常。通过设置ProcessStartInfo的UseShellExecute属性为True解决了报错问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

事情是这样的,我在winform里面添加了一个超链接,就是点击就可以进入设置好的网站的那种,但是我觉得代码写死在里面不太好,于是我想将网站地址用配置文件来存储,这样想换网站就不用改代码,而且打包之后,EXE文件也改不了,所以,用配置文件来改是个不错的方案。

于是,我就在网上四处寻找,不过,虽然找到了,但是,我这里只要一搬过来就报错,就这样,我被这个问题困扰了差不多一天,因为我也算是个新手。

本来是想用App.config、ini的,但是可能是因为我的方向没有弄对,一路上遇到了不少挫折,最后我这里还是使用的xml,果然,文件内容被读出来了,但是我紧接着遇到了一个问题,而这个问题就是Process.Start();方法报错,具体是这样的。

 此时的我很疑惑,明明ParseXml();的返回值是String类型,为什么会出现异常?刚开始我以为是字符串没有读进来,然后我在控制台打印输出了一下,结果是有的,这就奇怪了,以我的理解,Start();只需要一个字符串就行,但是不知道为什么,我这样传进来就死活不行,因为是个新手,这方面经验不是很多,所以一时还真有点手足无措。(解释下:这里调用的Process.Start(ParseXml());是我已经写好的,只是在main里面调用)

没办法,我继续在网上找,试了许多人的方法,直到我找到了真正对我有用的,这是原链接,不过我当时找到的时候人已经麻了,不过我还是试了试,很快啊,程序终于正常了,在这里真是万分感谢这位原作者。方法很简单,只要手动设置下UseShellExecute属性为True就行了。

 正常之后整个人都轻松了

原贴链接

不过,虽然问题解决了,但是我还是不太清楚为什么,在这里希望有大神刷到这里可以教下我,万分感谢

最后附上完整代码:

using System.Collections.Generic;
using System.Linq;
using System.Configuration;
using System.Collections.Specialized;
using System.Xml.Linq;
using System.Xml;
using System.Diagnostics;

namespace _001_开始
{
    internal class Program
    {

        //将App.Config.xml加载进来
        public static string ParseXml() 
        {

            XmlDocument doc = new XmlDocument();

            doc.Load("D:\\Program Files\\VSDev\\001-开始\\App.Config.xml");

            XmlElement root = doc.DocumentElement;

            XmlElement student = (XmlElement)root.SelectSingleNode("student");

            string name = student["name"].InnerText;

            //string sex = student["sex"].InnerText;
            //string phone = student["phone"].InnerText;

            return name;

            //Console.WriteLine(name);
            //Console.WriteLine(sex);
            //Console.WriteLine(phone);


        }


        static void Main(string[] args)
        {
            //Program program = new Program();
            //program.ParseXml();

            Process.Start(new ProcessStartInfo { UseShellExecute = true, FileName = ParseXml() });


        }

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值