0
我有一個在Windows服務器上運行的命令行應用程序。程序運行時,命令提示符保持打開狀態,並且在程序運行時將日誌消息輸出到命令提示符窗口。閱讀Windows命令提示STDOUT
我的需求是讀取程序運行時出現在命令提示符下的消息,然後在消息中出現一組特定的單詞時運行特定命令。
在Windows機器上執行此操作的最簡單方法是什麼? (無需修改應用程序)
我有一個在Windows服務器上運行的命令行應用程序。程序運行時,命令提示符保持打開狀態,並且在程序運行時將日誌消息輸出到命令提示符窗口。閱讀Windows命令提示STDOUT
我的需求是讀取程序運行時出現在命令提示符下的消息,然後在消息中出現一組特定的單詞時運行特定命令。
在Windows機器上執行此操作的最簡單方法是什麼? (無需修改應用程序)
閱讀這兩個員額會給你的解決方案:
想法是從您的新應用程序(用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");
}