在程序中通过Process启动外部exe的方法及注意事项

时间:2020-12-25 23:53:58

启动外部进程的方法:

/// <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:\test\test param”; //本意是传入一个文件夹路径

经过Process处理后,进入外部进程后,参数变为:

args = {"F:\\test\\test", "param"};