консольное приложение wpf не возвращается к приглашению - PullRequest
3 голосов
/ 07 сентября 2011

У меня есть консольное wpf-приложение со следующим классом приложений:

public partial class App : Application
{
    [DllImport("kernel32.dll", SetLastError = true)]
    static extern bool AttachConsole(uint dwProcessId);

    [DllImport("kernel32.dll", SetLastError = true)]
    static extern bool FreeConsole();

    const uint ATTACH_PARENT_PROCESS = 0x0ffffffff;

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

        AttachConsole(ATTACH_PARENT_PROCESS);

        Console.WriteLine("test1");

        FreeConsole();

        System.Environment.Exit(0);
    }
}

Когда я запускаю его из консоли, появляется текст «test1», но затем курсор консоли просто мигает, и приглашение не появляется, пока я не нажму Enter. Я удалил оператор StartupURI. Как заставить приложение вести себя как консольное приложение и вернуться к запросу после выполнения? (Windows 7 32 бит).

1 Ответ

0 голосов
/ 07 сентября 2011

Вместо того, чтобы устанавливать его как вывод приложения Windows, используйте тип вывода консольного приложения. Единственным недостатком является то, что консоль будет оставаться открытой, пока запущено приложение Windows. Я полагаю, поскольку вы можете получить processId консоли, вы можете убить его после запуска.

...