2012-04-03 122 views
0

我有一个以.net编写的.exe程序(控制台应用程序)。以编程方式运行.net控制台应用程序

  1. 我需要执行它
  2. 提供输入
  3. 获取的输出作为一个字符串或优选作为流。

当前我正在使用System.Diagnostics命名空间和Process类。 但为此使用Diagnostic命名空间剂量似乎没问题。

有什么方法可以让我更有效地做同样的事情? 像使用反射来找到Main()方法,然后调用它。

回答

3

Process类完全是你想做的事情的正确工具。不要介意Diagnostic名称空间的名称 - 只需使用Process类。

+0

thankx这个片段。我还需要在单独的应用程序域中运行此过程。可以使用这个命名空间来完成吗? – 2012-04-03 10:23:06

+0

第一:忘记命名空间!然后,请阅读以了解命名空间是什么以及它为什么对你根本无关紧要:http://msdn.microsoft.com/en-us/library/ms973231.aspx#assenamesp_topic5 – 2012-04-03 10:51:07

+0

好吧,第二个? – 2012-04-03 10:53:50

0

完全没问题。 System.Diagnostics只是一个命名空间。

如果有更多的信息需要,可以为navigate to this project动机和看看如何处理语法过程或从VM found in here

   var startInfo = new ProcessStartInfo(FilePath) 
       { 
        WorkingDirectory = RootFolderPath, 
        Arguments = StartingArguments, 
        RedirectStandardOutput = true, 
        UseShellExecute = false, 
        CreateNoWindow = true 
       }; 
       ConsoleProcess = new Process {StartInfo = startInfo}; 

       ConsoleProcess.Start(); 
相关问题