在C中调用exe程序,可以使用`System.Diagnostics`命名空间中的`Process`类。以下是一个简单的示例代码,展示了如何启动一个exe程序,并等待其退出:
```csharp
using System;
using System.Diagnostics;
class Program
{
static void Main()
{
// 指定要运行的exe文件路径
string exePath = "C:\\path\\to\\your\\executable.exe";
// 创建一个新的进程实例
Process process = new Process();
// 设置要启动的exe文件路径
process.StartInfo.FileName = exePath;
// 启动进程
process.Start();
// 等待进程退出
process.WaitForExit();
// 获取进程退出码
int exitCode = process.ExitCode;
Console.WriteLine($"进程退出码: {exitCode}");
}
}
```
在这个示例中,我们首先指定了要运行的exe文件的路径,然后创建了一个新的`Process`实例,并将要启动的exe文件的路径设置为`StartInfo.FileName`属性。接着调用`Start()`方法启动进程,并使用`WaitForExit()`方法等待进程退出。最后,我们获取并打印进程的退出码,这可以用于判断程序是否成功执行。
如果需要向exe程序传递参数,可以将参数添加到`StartInfo.Arguments`属性中,多个参数使用空格分隔。例如:
```csharp
process.StartInfo.Arguments = "arg1 arg2 arg3";
```
此外,还可以设置其他`StartInfo`属性,如`UseShellExecute`、`RedirectStandardInput`、`RedirectStandardOutput`和`RedirectStandardError`,以便更好地控制进程的输入输出行为。例如,如果需要将exe程序的输出重定向到C中的字符串,可以设置`RedirectStandardOutput`为`true`,并使用`process.StandardOutput.ReadToEnd()`方法读取输出内容。
```csharp
process.StartInfo.RedirectStandardOutput = true;
string output = process.StandardOutput.ReadToEnd();
Console.WriteLine(output);
```
通过这些方法,你可以在C中方便地调用并控制外部exe程序的执行。