Process的使用
时间: 2023-12-05 11:06:11 浏览: 147
使用Process类可以在C#中执行外部程序或系统命令。首先,可以使用`Process.GetProcesses()`方法获取本机的所有进程。如果想关闭特定的进程,可以使用`Process.GetProcessesByName(proName)`方法根据进程名称获取指定的进程。
要在C#中调用cmd窗口来执行命令,可以使用下面的代码:
```
Process process = new Process();
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.WorkingDirectory = "C:\\Program Files\\GPAC";
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.RedirectStandardInput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.Verb = "runas";
if (process.Start())
{
process.StandardInput.WriteLine(cmdstr);
process.StandardInput.WriteLine("exit");
}
string error = process.StandardError.ReadToEnd();
string output = process.StandardOutput.ReadToEnd();
```
上述代码中,`process.StartInfo.FileName`指定要执行的程序,这里是cmd.exe。`process.StartInfo.WorkingDirectory`指定工作目录,这里是GPAC所在的目录。`process.StartInfo.UseShellExecute`设置为false,表示不使用操作系统的shell启动进程。`process.StartInfo.CreateNoWindow`设置为true,表示不创建新窗口来显示进程。`process.StartInfo.RedirectStandardInput`、`process.StartInfo.RedirectStandardError`和`process.StartInfo.RedirectStandardOutput`分别设置为true,以便重定向进程的输入、错误和输出流。`process.StartInfo.Verb`设置为"runas",确保以管理员权限执行命令。最后,通过`process.StandardInput.WriteLine(cmdstr)`向进程的标准输入流写入命令,通过`process.StandardInput.WriteLine("exit")`退出cmd窗口。
请注意,如果使用`process.WaitForExit()`等待进程完成,可以去掉注释。另外,通过`process.StandardError.ReadToEnd()`和`process.StandardOutput.ReadToEnd()`分别获取执行过程中的错误信息和输出信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [c#process的详细用法](https://blog.csdn.net/u014194297/article/details/103855739)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [Process使用](https://blog.csdn.net/weixin_30672295/article/details/96711506)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文