Есть ли способ запустить / открыть консоль из приложения WinForms / WPF? - PullRequest
2 голосов
/ 23 декабря 2009

У меня есть приложение для форм Windows, и я хочу открыть консоль по требованию (например, когда я нажимаю кнопку), с которой я могу взаимодействовать с помощью стандартного класса Console. Есть ли способ сделать это?

Ответы [ 2 ]

6 голосов
/ 23 декабря 2009

Да, для взаимодействия с Win32 вам понадобится немного.

public class ConsoleHelper
{
    public static int Create()
    {
        if (AllocConsole())
            return 0;
        else
            return Marshal.GetLastWin32Error();
    }

    public static int Destroy()
    {
        if (FreeConsole())
            return 0;
        else
            return Marshal.GetLastWin32Error();
    }

    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage"), SuppressUnmanagedCodeSecurity]
    [DllImport("kernel32.dll", SetLastError = true)]
    [return: MarshalAs(UnmanagedType.Bool)]
    static extern bool AllocConsole();


    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2118:ReviewSuppressUnmanagedCodeSecurityUsage"), SuppressUnmanagedCodeSecurity]
    [DllImport("kernel32.dll", SetLastError = true)]
    [return: MarshalAs(UnmanagedType.Bool)]
    static extern bool FreeConsole();
}

Теперь вы можете вызвать Create (), чтобы создать консольное окно, связанное с вашим приложением.

0 голосов
/ 23 декабря 2009

Оформить заказ Эрика Петроэля . Он показывает код, который может создать консоль во время выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...