在命令行可使用的命令,可以使用C#代码启动,并可以重定向该命令执行所得的标准输出流、標準輸入流和标准錯誤流。
具體類似代碼如下:
private List<string> GetP4CommandLineStandardOutput(string strArgs, IP4StandardOutputReceiver outputReciever)
{
ProcessStartInfo procInfo = new ProcessStartInfo(processName);
procInfo.Arguments = arguments;
procInfo.CreateNoWindow = true;
procInfo.RedirectStandardOutput = true;
procInfo.RedirectStandardInput = true;
procInfo.UseShellExecute = false;
p4ProcInfo.RedirectStandardError = true;
Process p4P = Process.Start(p4ProcInfo);
string strLine;
StreamWriter wrt = p4P.StandardInput;
wrt.WriteLine(inputArguments);
StreamReader reader = p4P.StandardOutput;
StreamReader errorReader = p4P.StandardError;
while (!reader.EndOfStream)
{
strLine = reader.ReadLine();
outputReciever.P4StandardOutPutRedirect(strLine);
listStrStandardOuput.Add(strLine);
}
while (!errorReader.EndOfStream)
{
strLine = errorReader.ReadLine();
outputReciever.P4StandardErrorRedirect("Error: " + strLine);
}
p4P.WaitForExit();
p4P.Close();
return listStrStandardOuput;
}
這裡自己定義了一個接口,用於異步更新UI主介面,把信息及時反饋與主介面。注意的是這裡procInfo裏面的一些bool值需要設置成true。StreamWriter是添加上去的示例代碼,爲了演示標準輸入重定向的方式。