C#中的Process怎么启动带参数的url

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中的Process怎么启动带参数的url相关的知识,希望对你有一定的参考价值。

Process ie = new Process();
ie.StartInfo.FileName = config.IePath;
ie.StartInfo.Arguments = "http://www.baidu.com?a=1"
ie.Start();

Process会自动把问号"?"转换成"%3F", 这样程序会报错,怎么解决这个问题啊
我试过了,用http://开头的确实不会出错,我是直接打开文件系统中的html,如:D:\Documents\Recent\App.html?s=1,这样就会出错了。后来在前面加了一个file:///,这样就不会出错了。jyhcq 的方法再加了file:///后还是会出错的,但对于http://是对的

参考技术A 我现在想在C#中打开特定的文件,并且指定特定的打开方式。
下面是代码
1.
ProcessStartInfo psi = new ProcessStartInfo(@"D:\Program Files\Foxit Software\Foxit Reader\Foxit Reader.exe");

psi.UseShellExecute = false;

psi.Arguments = @" d:\a a\H3C实验手册.pdf";
Process.Start(psi);
2.
System.Diagnostics.Process.Start(@"D:\Program Files\Foxit Software\Foxit Reader\Foxit Reader.exe", @" d:\a a\H3C实验手册.pdf");
这两个代码实现的是同一个效果,都是指定D盘 “a a”文件夹(注意a a中间有个空格)下的“H3C实验手册.pdf”文件用Foxit Reader.exe 打开。
但是上面指定文件的路径中有个“空格”,如果没有在别的没有空格的路径下打开文件就可以,若文件路径中有空格的话,就不行了。
自己的分析:上面的程序实际上就是用命令行参数来启动程序,而命令行参数是用空格开区分不同的参数,所以文件路径中有空格后,这个参数是被截断了。

自己想了好久都没有解决方案,忘高手赐教!!
参考技术B System.Diagnostics.ProcessStartInfo
psi=new System.Diagnostics.ProcessStartInfo("http://www.baidu.com?a=1");
System.Diagnostics.Process proc=System.Diagnostics.Process.Start(psi);

VS2005测试通过

http://www.jyrxw.com
参考技术C 我试验了.你的示例"?"没有变成"%3F"呀.

你在试试.

C#怎么启动带参数的执行文件

public bool StartProcess(string filename, string[] args)

try

string s="";
foreach(string arg in args)

s=s+arg+" ";

s=s.Trim();
Process myprocess = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo(filename,s);
myprocess.StartInfo = startInfo;

//通过以下参数可以控制exe的启动方式,具体参照 myprocess.StartInfo.下面的参数,如以无界面方式启动exe等
myprocess.StartInfo.UseShellExecute = false;
myprocess.Start();
return true;

catch (Exception ex)

MessageBox.Show("启动应用程序时出错!原因:" + ex.Message);

return false;


接着,在调用的地方调用此函数

private void button1_Click(object sender, EventArgs e)

string[] arg = new string[1];
arg[0] = textBox1.Text.Trim();
StartProcess(@"E:/ZHOUXL/C#/FileOP/FileOP/bin/Debug/FileOP.exe",arg);
参考技术A Process.start(程序名,参数);这个函数可以,System.Diagnostics命名空间里的,都是string类型的参数,希望可以帮到你。

以上是关于C#中的Process怎么启动带参数的url的主要内容,如果未能解决你的问题,请参考以下文章

C# Process Start 需要带双引号的参数 - 它们消失了

我用C#做了一个带参数的webserver 现在要用winform程序去访问这个webserver http访问的url应该怎么写啊?

C# 启动EXE文件及带启动参数EXE

C# 中怎么使用带参数的多线程呢

记一次WPF程序带参数启动

C#中调用dll,函数参数带指针,如何改写?