C# winform 启动脚本
时间: 2024-06-03 22:04:00 浏览: 149
在C# WinForm中启动脚本可以通过调用cmd命令来实现。下面是一个示例代码,演示了如何在C# WinForm中启动脚本:
```csharp
using System;
using System.Diagnostics;
using System.Windows.Forms;
namespace WinFormApp
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
private void btnRunScript_Click(object sender, EventArgs e)
{
string scriptPath = "C:\\path\\to\\script.bat"; // 替换为你的脚本路径
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "/c " + scriptPath;
startInfo.RedirectStandardOutput = true;
startInfo.UseShellExecute = false;
startInfo.CreateNoWindow = true;
Process process = new Process();
process.StartInfo = startInfo;
process.OutputDataReceived += Process_OutputDataReceived;
process.Start();
process.BeginOutputReadLine();
process.WaitForExit();
}
private void Process_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
if (!string.IsNullOrEmpty(e.Data))
{
// 处理输出结果
// 例如,将输出结果显示在文本框中
textBoxOutput.Invoke((MethodInvoker)delegate
{
textBoxOutput.AppendText(e.Data + Environment.NewLine);
});
}
}
}
}
```
上述代码中,我们首先指定了要执行的脚本路径,然后创建了一个`ProcessStartInfo`对象,设置了要启动的进程为`cmd.exe`,并指定了要执行的脚本路径作为参数。接下来,我们创建了一个`Process`对象,将`ProcessStartInfo`对象赋值给它,并注册了一个事件处理程序来处理输出结果。最后,我们启动进程,并等待进程执行完毕。
在`Process_OutputDataReceived`事件处理程序中,我们可以处理脚本的输出结果。在示例代码中,我们将输出结果显示在一个文本框中,你可以根据自己的需求进行处理。
请注意,为了能够在WinForm中显示输出结果,我们使用了`Invoke`方法来确保在UI线程上执行更新操作。
阅读全文