C# Process.Start()方法: 启动一个新进程并打开一个可执行文件

  • Post category:C#

C#中的Process.Start()方法可以启动外部进程,并返回一个Process对象,它可以用来控制已启动进程的执行状态。具体来说,Process.Start()的作用包括:

  • 启动进程:可以通过Process.Start()方法启动一个新的进程,该方法会返回一个Process对象,通过该对象可以获得启动的进程的一些信息,如进程ID等。
  • 执行命令:可以将需要执行的命令作为参数传递给Process.Start()方法,从而启动一个新的进程,并且自动执行给定的命令。
  • 控制进程:通过Process类提供的一些方法和属性,可以控制已启动进程的执行状态,如停止进程、获取进程输出等。

下面是Process.Start()的使用方法:

Process.Start(string fileName);
Process.Start(string fileName, string arguments);
Process.Start(ProcessStartInfo startInfo);
  • 第一种方法:通过指定要运行的可执行文件的名称来启动进程。例如,下面的代码启动了Notepad应用程序:
Process.Start("notepad.exe");
  • 第二种方法:可以指定要启动的可执行文件以及要传递给它的参数。例如,下面的代码启动了Notepad应用程序,并打开了一个名为”test.txt”的文本文件:
Process.Start("notepad.exe", "test.txt");
  • 第三种方法:使用ProcessStartInfo类指定进程启动时的参数,如要运行的可执行文件、传递给可执行文件的参数和工作目录等。例如,下面的代码使用ProcessStartInfo类启动了cmd.exe进程,并指定工作目录为“C:\”:
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "cmd.exe";
startInfo.WorkingDirectory = "C:\\";
Process.Start(startInfo);

另外,下面是两个实例:

  1. 启动网页
var startInfo = new ProcessStartInfo("http://www.baidu.com");
Process.Start(startInfo); 
  1. 启动命令行
var startInfo = new ProcessStartInfo("cmd.exe");
startInfo.UseShellExecute = false;
startInfo.RedirectStandardInput = true;
startInfo.RedirectStandardOutput = true;
startInfo.CreateNoWindow = true;
var process = new Process();
process.StartInfo = startInfo;
process.Start();
process.StandardInput.WriteLine("ipconfig");
process.StandardInput.WriteLine("exit");
string output = process.StandardOutput.ReadToEnd();
Console.WriteLine(output);