C#如何让命令行在WPF窗体里面运行
要在WPF窗体中运行命令行,你可以使用Process类启动命令行进程,并将其输出重定向到WPF应用程序中。以下是一个简单的示例代码,它演示了如何启动cmd.exe并在WPF窗体中显示其输出:
using System.Diagnostics;
using System.IO;
// ...
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
// Create a new ProcessStartInfo object and set the command and arguments
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "/c dir"; // Replace "dir" with your command
// Set the process options
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = true;
startInfo.CreateNoWindow = true;
// Create the process and start it
Process process = new Process();
process.StartInfo = startInfo;
process.OutputDataReceived += new DataReceivedEventHandler(OutputDataReceived);
process.Start();
process.BeginOutputReadLine();
}
private void OutputDataReceived(object sender, DataReceivedEventArgs e)
{
// Write the output to the console
Console.WriteLine(e.Data);
// Update the UI on the UI thread
this.Dispatcher.Invoke(() =>
{
this.OutputTextBlock.Text += e.Data + Environment.NewLine;
});
}
}
在这个例子中,我们创建了一个WPF窗体,并在点击按钮时启动cmd.exe进程并将其输出重定向到窗体中。我们使用了ProcessStartInfo类来设置进程选项,并将OutputDataReceived事件附加到进程对象上。在OutputDataReceived事件处理程序中,我们使用Dispatcher对象将输出添加到TextBlock控件中,并在UI线程上更新UI。