我是否可以像在命令提示符中一样,用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:\");
}