【发布时间】:2010-10-21 12:32:35
【问题描述】:
标题说明了这一点。我知道我可以使用 Process 或 ProcessStartInfo 来运行参数,但我的意思是向我的应用程序添加一个命令提示符控件(因为我经常使用它,如果它已经内置它会很方便。
除了编写自定义控件之外,还有其他方法吗?如果不是,我可以忍受它,但它肯定会有所帮助。
【问题讨论】:
标题说明了这一点。我知道我可以使用 Process 或 ProcessStartInfo 来运行参数,但我的意思是向我的应用程序添加一个命令提示符控件(因为我经常使用它,如果它已经内置它会很方便。
除了编写自定义控件之外,还有其他方法吗?如果不是,我可以忍受它,但它肯定会有所帮助。
【问题讨论】:
类似这样的东西(未测试):
ProccessInfo pi = new ProccessInfo("cmd.exe");
pi.RedirectStandardError=true;
pi.RedirectStandardInput=true;
pi.RedirectStandardOutput=true;
Process cmd = Process.Start(pi);
cmd.StandardInput.WriteLine("Dir");
textBox1.Text = cmd.StandardOutput.ReadToEnd();
注意死锁,那些方法可能会阻塞!
您也可以使用来自 codeproject.com 的此解决方案:http://www.codeproject.com/KB/miscctrl/commandprompt.aspx
【讨论】:
见this question 和相关的。也以this source code 为例。
您可以在您将控制的 win 应用程序窗口附近启动一个控制台,并可以输出一些数据或从用户那里获取输入。
【讨论】:
AllocConsole() 在主窗体附近创建一个控制台窗口,您可以使用标准Console.WriteLine() 编写它们
在循环中执行 Console.ReadLine()/Console.WriteLine() 有什么问题?这是最有效的方式,您可以完全控制自己在做什么。
【讨论】: