从WPF应用程序启动控制台应用程序

时间:2014-08-10 17:04:06

标签: c# .net wpf

我想知道是否可以从WPF应用程序启动控制台应用程序。

在我的控制台应用程序中,我添加了一个名为Reports的类。在我的WPF应用程序中,我创建一个Reports对象并调用其公共方法之一。

它调用的方法包含以下代码。问题是代码不会等待用户输入任何输入,因此它会在ValidateUserInput中崩溃。我也没有看到任何控制台应用程序实际加载。我无法在控制台应用程序中看到如何调用Program类的Main方法。你可能会说我很丢失。

Console.WriteLine("*** Running Report ***");                
Console.WriteLine("User enter something:");
string myStr = Console.ReadLine();
ValidateUserInput(myStr);

1 个答案:

答案 0 :(得分:4)

由于您正在运行WPF应用程序,因此如果在调试模式下运行,所有控制台输出都将转到Visual Studio的输出窗口。

要实际启动控制台应用程序,您必须 手动打开控制台窗口并在使用后关闭它 。在您的课程中添加以下方法:

[DllImport("Kernel32")]
public static extern void AllocConsole();

[DllImport("Kernel32", SetLastError = true)]
public static extern void FreeConsole();

现在,使用这样的方法:

AllocConsole();
report.ConsoleMethod() // Method to console application.
FreeConsole();