在运用Process.Start 挪用外部顺序时,除了顺序的地点以外,是能够通报参数的,Process.Start 也有多个重载;
// // 择要: // 启动由包含历程启动信息(比方,要启动的历程的文件名)的参数指定的历程资本,并将该资本与新的 System.Diagnostics.Process // 组件关联。 // // 参数: // startInfo: // System.Diagnostics.ProcessStartInfo,包含用于启动历程的信息(包含文件名和任何命令行参数)。 // // 返回效果: // 与历程资本关联的新的 System.Diagnostics.Process 组件,或许假如没有启动历程资本(比方,假如重用了现有历程),则为 null。 // // 非常: // System.InvalidOperationException: // 在 startInfo 参数的 System.Diagnostics.ProcessStartInfo.FileName 属性中未指定任何文件名。- // 或 - startInfo 参数的 System.Diagnostics.ProcessStartInfo.UseShellExecute 属性为 // true,而 System.Diagnostics.ProcessStartInfo.RedirectStandardInput、System.Diagnostics.ProcessStartInfo.RedirectStandardOutput // 或 System.Diagnostics.ProcessStartInfo.RedirectStandardError 属性也为 true。- 或 // -startInfo 参数的 System.Diagnostics.ProcessStartInfo.UseShellExecute 属性为 true,而 // System.Diagnostics.ProcessStartInfo.UserName 属性不为 null 或空,或许 System.Diagnostics.ProcessStartInfo.Password // 属性不为 null。 // // System.ArgumentNullException: // startInfo 参数为 null。 // // System.ComponentModel.Win32Exception: // 翻开关联的文件时发生了毛病。 // // System.ObjectDisposedException: // 该历程对象已被开释。 public static Process Start(ProcessStartInfo startInfo); // // 择要: // 经由过程指定文档或应用顺序文件的称号来启动历程资本,并将资本与新的 System.Diagnostics.Process 组件关联。 // // 参数: // fileName: // 要在历程中运转的文档或应用顺序文件的称号。 // // 返回效果: // 与历程资本关联的新的 System.Diagnostics.Process 组件,或许假如没有启动历程资本(比方,假如重用了现有历程),则为 null。 // // 非常: // System.ComponentModel.Win32Exception: // 翻开关联的文件时发生了毛病。 // // System.ObjectDisposedException: // 该历程对象已被开释。 // // System.IO.FileNotFoundException: // PATH 环境变量有包含引号的字符串。 public static Process Start(string fileName); // // 择要: // 经由过程指定应用顺序的称号和一组命令行参数来启动一个历程资本,并将该资本与新的 System.Diagnostics.Process 组件相干联。 // // 参数: // fileName: // 要在该历程中运转的应用顺序文件的称号。 // // arguments: // 启动该历程时通报的命令行参数。 // // 返回效果: // 与该历程关联的新的 System.Diagnostics.Process 组件,或许假如没有启动历程资本(比方,假如重用了现有历程),则为 null。 // // 非常: // System.InvalidOperationException: // fileName 或 arguments 参数为 null。 // // System.ComponentModel.Win32Exception: // 翻开关联的文件时发生了毛病。 // // System.ObjectDisposedException: // 该历程对象已被开释。 // // System.IO.FileNotFoundException: // PATH 环境变量有包含引号的字符串。 public static Process Start(string fileName, string arguments); // // 择要: // 经由过程指定应用顺序的称号、用户名、暗码和域来启动一个历程资本,并将该资本与新的 System.Diagnostics.Process 组件关联起来。 // // 参数: // fileName: // 要在该历程中运转的应用顺序文件的称号。 // // userName: // 启动历程时运用的用户名。 // // password: // 一个 System.Security.SecureString,它包含启动历程时要运用的暗码。 // // domain: // 启动历程时要运用的域。 // // 返回效果: // 与历程资本关联的新的 System.Diagnostics.Process 组件,或许假如没有启动历程资本(比方,假如重用了现有历程),则为 null。 // // 非常: // System.InvalidOperationException: // 未指定文件名。 // // System.ComponentModel.Win32Exception: // fileName 不是可执行 (.exe) 文件。 // // System.ComponentModel.Win32Exception: // 翻开关联的文件时发生了毛病。 // // System.ObjectDisposedException: // 该历程对象已被开释。 public static Process Start(string fileName, string userName, SecureString password, string domain); // // 择要: // 经由过程指定应用顺序的称号、一组命令行参数、用户名、暗码和域来启动一个历程资本,并将该资本与新的 System.Diagnostics.Process // 组件关联起来。 // // 参数: // fileName: // 要在该历程中运转的应用顺序文件的称号。 // // arguments: // 启动该历程时通报的命令行参数。 // // userName: // 启动历程时要运用的用户名。 // // password: // 一个 System.Security.SecureString,它包含启动历程时要运用的暗码。 // // domain: // 启动历程时要运用的域。 // // 返回效果: // 与历程资本关联的新的 System.Diagnostics.Process 组件,或许假如没有启动历程资本(比方,假如重用了现有历程),则为 null。 // // 非常: // System.InvalidOperationException: // 未指定文件名。 // // System.ComponentModel.Win32Exception: // fileName 不是可执行 (.exe) 文件。 // // System.ComponentModel.Win32Exception: // 翻开关联的文件时发生了毛病。 // // System.ObjectDisposedException: // 该历程对象已被开释。 public static Process Start(string fileName, string arguments, string userName, SecureString password, string domain);
个中的arguments 参数, 是有个空格的题目的, 在外部顺序吸收参数的 (Winform) 是用过Main(string[] args) 。 个中args是数组 , 在StartInfo.Arguments中的参数的距离是依据空格举行分断的。 所以假如在通报的参数中是空格的,就须要 在 参数前后追加 “\"” 即:
string argument1 = "\"" + argv1 + "\""; string argument2 = "\"" + argv2 + "\""; Process process = new Process(); process.StartInfo.FileName = System.Environment.CurrentDirectory + "//test.exe"; process.StartInfo.Arguments = argument1 + " " + argument2; process.StartInfo.UseShellExecute = true; ; //启动 process.Start();
ok, 如许就可以处理Process 通报参数的有空格的题目了。
以上就是简朴引见C#运用Process挪用外部顺序中所碰到的参数题目的代码示例的细致内容,更多请关注ki4网别的相干文章!