是的,C# WinForms 应用程序可以调用外部程序。你可以使用 System.Diagnostics
命名空间中的 Process
类来实现这个功能。以下是一个简单的示例,展示了如何启动一个外部程序(例如 Notepad):
using System;
using System.Diagnostics;
using System.Windows.Forms;
namespace WinFormsApp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// 创建一个 ProcessStartInfo 对象,用于存储要启动的外部程序的详细信息
ProcessStartInfo startInfo = new ProcessStartInfo
{
FileName = "notepad.exe", // 要启动的程序的名称
RedirectStandardOutput = true, // 将程序的输出重定向到应用程序的输出流
UseShellExecute = false, // 不使用系统外壳程序启动程序
CreateNoWindow = true // 不创建新窗口
};
// 使用 Process 类启动外部程序
using (Process process = Process.Start(startInfo))
{
// 可以使用 process.StandardOutput 获取程序的输出(如果有的话)
string output = process.StandardOutput.ReadToEnd();
process.WaitForExit(); // 等待程序执行完成
}
}
}
}
在这个示例中,当用户点击按钮时,将启动 Notepad 程序。你可以根据需要修改 FileName
属性以启动其他外部程序。