【问题标题】:End console app - File path is not showing终端控制台应用程序 - 文件路径未显示
【发布时间】:2014-08-20 22:09:09
【问题描述】:

我正在尝试制作一个也可以从命令行运行的 WPF 应用程序。我有一个 WPF 应用程序,我可以在某种程度上实现这一点。可以使用 0 个参数运行并加载一个窗口。

当我使用 > 0 个参数运行它时,我的想法是让它从命令行运行,因此应该打印到命令行。所以为此我有Attached 一个控制台,然后在我完成后Freed 控制台。

但是,当一切都完成后,命令行上会出现以下结果。

能够在此处运行另一个命令,但为什么不显示完整目录以表明它已完成?

有没有办法解决这个问题?

经过进一步检查,我注意到它似乎是在输出之前而不是之后打印新行。

public partial class App : Application
{
    [DllImport("Kernel32.dll")]
    public static extern bool AttachConsole(int processId);

    [DllImport("Kernel32.dll")]
    private static extern bool FreeConsole();

    protected override void OnStartup(StartupEventArgs e)
    {
        base.OnStartup(e);

        if (e.Args.Length > 0)
        {
            AttachConsole(-1);
            Console.WriteLine("\nStart");
            Console.WriteLine("Stop");
            Console.WriteLine("");
            FreeConsole();
        }
        else
        {
            new MainWindow().ShowDialog();
        }
        this.Shutdown();
    }
}

【问题讨论】:

    标签: c# .net wpf console


    【解决方案1】:

    您是否尝试过使用 AllocConsole 功能?我一直使用它没有任何问题。

    [DllImport("Kernel32")]
    internal static extern bool AllocConsole();
    

    【讨论】:

    • 所以我尝试用 AllocConsole() 替换 AttachConsole(-1) ,结果没有打印到控制台。
    猜你喜欢
    • 2015-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-28
    • 2018-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多