启动外部进程的方法:
/// <summary> /// 启动外部进程 /// </summary> /// <param name="path">进程启动路径</param> /// <param name="param">进程传入参数</param> /// <returns>是否成功</returns> public bool StartProcess(string path, string param) { ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.FileName = path; startInfo.Arguments = param; Process process = new Process(); process.StartInfo = startInfo; #region 若需要启动退出事件
process.EnableRaisingEvents = true; process.Exited += new EventHandler(process_Exited); #endregion return process.Start(); }
注意事项:
方法中的param,此处是string类型,而c#中Mian方法的参数是字符串数组(params string[] args),两者之间是如何转换的?
在通过Process将param传入时,param会被以空格分隔为字符串数组赋值给args。因此若需要传入带空格的字符串,则需要先将空格用其他符号替换,传入外部进程后,再将空格修复回来即可。
例如:
param = @“F: est est param”; //本意是传入一个文件夹路径
经过Process处理后,进入外部进程后,参数变为:
args = {"F:\test\test", "param"};