热门资讯

并获取返回值为例

最简单的做法

using (Process process = Process.Start(fileName, arguments)) {
process.Close(); }

最简单的就是调用 Process 的静态方法 Start。

使用 StartInfo

如果比较复杂,我们需要使用 StartInfo。

  • 我们可以将 StartInfo 作为参数传给 new Process(startInfo)。
  • 也可以将 StartInfo 作为参数传给 (new Process()).Start(startInfo)。
  • 也可以直接使用 Process 实例的 process.StartInfo 属性。

我们以执行某个外部命令,并获取返回值为例:

string result = “”; try { using (Process process = new Process()) {
process.StartInfo.FileName = fileName; process.StartInfo.Arguments =
arguments; process.StartInfo.CreateNoWindow = true;
process.StartInfo.UseShellExecute = false; // 要获取输出,此值必须为
false。 process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true; process.Start();
process.WaitForExit(); // 等待执行完毕 result =
process.StandardError.ReadToEnd(); // 获取输出值 process.Close(); } }
catch (Exception ex) { result = ex.Message; }

Process.Start 系统找不到指定的文件。

  • 我们最好将路径为引号引起来,避免路径中空格影响。
  • 还有我们要把 fileName 和 arguments
    分开写,不能合在一起写,合在一起写就会出现错误:系统找不到指定的文件。

隐藏窗口

StartInfo.CreateNoWindow = true;

要获取外部命令输出结果

StartInfo.UseShellExecute = false;

错误:StandardError 尚未重定向

StartInfo.RedirectStandardError = false;

等待外部命令执行完毕,再继续

process.WaitForExit();

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章