2011-04-07 103 views
0

我有以下问题。我运行一个exe文件,但我无法在控制台应用程序中看到exe文件包含的所有内容。我期望在控制台应用程序中看到至少我正在运行的可执行文件中写入的文本。我在哪里错了?c#standard output readtoEnd()

1)我怎样才能在控制台应用程序中打印我在我运行的exe中写入的文本?那可能吗?我也想使用tje标准输入流。我的意思是我想从exe中读取,并使用我的应用程序在exe中写入。这里是代码:

需要一些帮助。谢谢!

static void Main(string[] args) 
    { 
     string s; 



     ProcessStartInfo p = new ProcessStartInfo(); 
     p.UseShellExecute = false; 
     p.RedirectStandardOutput = true; 
     p.RedirectStandardInput = true; 
     p.RedirectStandardError = true; 
     p.FileName = @"notepad.exe"; 

     using (Process pp = Process.Start (p)) 
     { 
      string output = pp.StandardOutput.ReadToEnd(); 
      //pp.WaitForExit(); 
      StreamReader myStreamReader = pp.StandardError; 

      // finally output the string 
      Console.WriteLine("output is: "+output+"....."+myStreamReader.ReadLine()); 
      // pp.Close(); 
      Thread.Sleep (2000); 
     } 
+0

您是否期望在控制台中转储您在记事本中编写的文本? – 2011-04-07 09:52:53

+0

您能详细说明您正在尝试做什么吗?为什么你需要一个单独的过程? – GregC 2011-04-07 09:53:40

+0

我不确定Notepad.exe写入标准输出或标准错误......它不是一个命令行程序,它是一个GUI程序。 – 2011-04-07 09:58:15

回答

3

Standard*流只适用于控制台应用程序。您正在运行记事本,这不是控制台应用程序。

+0

thx为答案:) – elisa 2011-04-07 10:30:25

+0

我接受了你的答案。我想问你如何使用应用程序访问正在运行的exe文件的菜单? – elisa 2011-04-07 10:49:18

+0

@elisa:正如我上次已经告诉你的那样,请将新问题作为新问题发布,而不是在旧问题的评论中。您将获得更广泛的受众,并通过这种方式获得更好的答案此外:您的问题到目前为止让我感到困惑:您在全局中究竟想达到什么目的? – 2011-04-07 10:50:54