2017-02-09 88 views
0

我寫使用一個控制檯應用程序在C#中的殼體內運行的另一個應用。用我的殼牌我會執行其它應用,如ping.exe的,takeown.exe等,就像你用CMD或bash。StreamWrite(交互)到C#控制檯應用程序

我已經從其他工藝到我的控制檯應用程序重定向標準輸出沒有問題。問題是,我不知道如何重定向StardardIn正確,這樣我可以運行的應用程序交互。也就是說我需要輸入「y」來確認使用cacls.exe的操作。

這裏是我的StandardOut代碼:

我如何寫回應用程序?

Process process = new Process(); 

process.StartInfo.RedirectStandardError = true; 
process.StartInfo.RedirectStandardOutput = true; 
process.StartInfo.RedirectStandardInput = true; 
process.StartInfo.UseShellExecute = false; 
process.StartInfo.CreateNoWindow = true; 
process.StartInfo.FileName = cmd; 
process.StartInfo.Arguments = Arguments; 

process.OutputDataReceived += new DataReceivedEventHandler(
     (s, e) => 
      { 
        Console.WriteLine(e.Data); 
      } 
     ); 
process.ErrorDataReceived += new DataReceivedEventHandler((s, e) => { Console.WriteLine(e.Data); }); 

process.Start(); 
process.BeginOutputReadLine(); 
process.WaitForExit(); 
+1

'process.StandardInput.WriteLine( 「Y」);' –

回答

0

你應該使用process.StandardInput.WriteLine(message) 和消息應該是一個字符串回寫數據到應用程序。

您可以使用Write()WriteLine()