我不懂管道,就帮你up吧。想想我前几个星期发了一问题,十天都没人理……,连帮我up的也没有……

解决方案 »

  1.   

    我不太明白你用管道的意义,给你一个参考:
    ms-help://MS.VSCC/MS.MSDNVS.2052/dllproc/prothred_4uus.htm
      

  2.   

    .NET环境下不需要直接使用Pipe重定向进程输入输出了,CLR会帮你建立相应的Pipe:
    Process p = new Process("cmd.exe", "/C\"dir C:\"");
    p.UseShellExecute = false;
    p.RedirectStandardOutput = true;  //表示需要重定向Output
    p.Start();
    p.WaitForExit();
    string output = p.StandardOutput.ReadToEnd();
    output应该会包含dir C:的结果。
      

  3.   

    FYI,在传统Windows环境下重定向的步骤大致如下:
    1. CreatePipe,建立一个管道,包括一个Read Handle和一个Writer Handle,从Write Handle写入的可以在Read Handle读出。
    2. CreateProcess建立子进程,在StartupInfo中指定Write Handle为新进程的StdOutput。
    3. 调用ReadFile,从Read Handle中读出子进程的输出。MSDN里有一个具体应用的例子。
      

  4.   

    to qqchen79(知秋一叶)
    我没有msdn
    把哪个例子传上来好吗
      

  5.   

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/creating_a_child_process_with_redirected_input_and_output.asp