【发布时间】:2014-04-10 12:51:16
【问题描述】:
我有一个 WPF 应用程序,当传递命令行参数时,它作为命令行应用程序运行。要显示/获取命令行窗口,我使用以下代码。
当我运行应用程序时,一切都按预期工作。如果我在应用程序期间向控制台写入任何内容,则应用程序不会自动退出控制台,我必须按“输入”或基本上调用某种 ReadLine - 注意我没有在我的应用程序中使用 ReadLine全部。事实上,我只能使用这个简单的代码来实现这种行为。应用程序运行后,如何防止要求“按 Enter”?
public static void Main(string[] args)
{
if (args.Length == 0)
{
App app = new App();
app.Run(new MainWindow());
}
else
{
// attach to an parent process console
if (!NativeMethods.AttachConsole(-1))
{
// allocate a new console
NativeMethods.AllocConsole();
}
Console.WriteLine("hey");
NativeMethods.FreeConsole();
}
}
我对 Alloc / Attach / Free 使用以下方法。请注意,根据 Rohit 的建议,我在 WriteLine 之后直接尝试了 FreeConsole,但它仍然没有帮助
[DllImport("kernel32.dll")]
private static extern bool AllocConsole();
[DllImport("kernel32.dll")]
private static extern bool AttachConsole(int pid);
[DllImport("kernel32.dll", SetLastError = true)]
private static extern int FreeConsole();
【问题讨论】:
标签: c# wpf command-line