我可以从c#窗体运行windows命令吗



我是否可以像在命令提示符中一样,用C sharp从Windows窗体调用Windows命令?如果是,如何?

最简单的方法是如下所示。。

Process.Start("Executable name here", "parameters here");

但是,如果您想设置一个工作目录,捕获标准输出或错误,不创建窗口等。您可以执行以下操作。。

void StartNewProcess(string processName, string parameters, string startDir)
{
    var proc = new Process();
    var args = new ProcessStartInfo 
    { 
        FileName = processName,
        Arguments = parameters,
        WorkingDirectory = startDir,
        CreateNoWindow = true,
        UseShellExecute = false,
        RedirectStandardOutput = true,
        RedirectStandardError = true
    };
    proc = Process.Start(args);
    proc.ErrorDataReceived += p_DataReceived;
    proc.OutputDataReceived += p_DataReceived;
    proc.BeginErrorReadLine();
    proc.BeginOutputReadLine();
    proc.WaitForExit();
}

然后你可以使用这样的东西来处理输出。。

void p_DataReceived(object sender, DataReceivedEventArgs e)
{
   if (e.Data != null && e.Data.Length > 0) Console.WriteLine(e.Data); 
}

要调用的示例。。

void button1_Click(object sender, EventArgs e)
{
    //Input params: Executable name, parameters, start directory
    StartNewProcess("cmd.exe", "/C dir", "C:\");
}

最新更新