我有一个在Windows服务器上运行的命令行应用程序。程序运行时,命令提示符保持打开状态,并在程序运行时将日志消息输出到命令提示符窗口。
我需要在程序运行时读取命令提示符上显示的消息,然后在消息中出现一组特定的单词时运行特定的命令。
在Windows机器上执行此操作最简单的方法是什么? (不修改应用程序)
答案 0 :(得分:3)
阅读这两篇文章将为您提供解决方案:
我们的想法是从你的新应用程序(用C#编写)运行你的应用程序(不是修改它),并将其输入输出重定向到这里,随意阅读和书写。
一个例子可能是:
Process proc;
void RunApp()
{
proc = new Process();
proc.StartInfo.FileName = "your_app.exe";
proc.StartInfo.Arguments = ""; // If needed
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardInput = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.OutputDataReceived += new DataReceivedEventHandler(InterProcOutputHandler);
proc.Start();
proc.WaitForExit();
}
void InterProcOutputHandler(object sendingProcess, DataReceivedEventArgs outLine)
{
// Read data here
...
// Send command if necessary
proc.StandardInput.WriteLine("your_command");
}