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

启动外部进程的方法:

/// <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"};

原文地址:https://www.cnblogs.com/hibernation/p/3246515.html