【发布时间】:2012-10-02 12:35:41
【问题描述】:
如何从 Windows 窗体访问和运行控制台应用程序,它是同一项目的一部分。我有一个 Windows 窗体和一个控制台应用程序。我认为我可以发布控制台应用程序,然后使用Process.Start(path to console app),但这不是我想要的。我想在我的表单项目中访问和使用控制台应用程序的Main 方法。此方法将在单击按钮时运行。
这会产生以下错误。
InvalidOperationException 未处理 当任一应用程序没有控制台时无法读取密钥 或者当控制台输入已从文件重定向时。试试 Console.Read。
private void buttonApplication_Click(object sender, EventArgs e)
{
Ch15Extra_2.Program.Main();
}
这里是方法。
控制台应用程序:
namespace Ch15Extra_2
{
public class Program
{
public static void Main()
{
Console.WriteLine("Here the app is running");
Console.ReadKey();
}
}
}
表格1:
private void buttonApplication_Click(object sender, EventArgs e) { }
【问题讨论】:
-
不清楚您期望发生什么。您说您不想将控制台应用程序作为独立进程启动,但如果您按原样调用该方法,那么显然它不会工作,因为您不在控制台应用程序中。您希望
Console.ReadKey()在 WinForms 应用程序中表现如何? -
@Tudor 我想 Console.ReadKey() 在表单上不会做太多事情。好的,那么表单应用程序是否不可能调用控制台应用程序打开另一个进程,这将来自被调用的控制台应用程序的 main 方法。
-
@Tudor 当我写表单应用程序时我提到表单控件(一个按钮)