代码之家  ›  专栏  ›  技术社区  ›  Adrian Zanescu

有没有办法从winforms/wpf应用程序启动/打开控制台?

  •  2
  • Adrian Zanescu  · 技术社区  · 15 年前

    我有一个Windows窗体应用程序,我想按需打开一个控制台(例如,当我按下一个按钮时),可以使用标准控制台类进行交互。有办法吗?

    2 回复  |  直到 15 年前
        1
  •  6
  •   Paolo    15 年前

    是的,您需要一点关于与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()来创建与应用程序关联的控制台窗口。

        2
  •  0
  •   Community kfsone    7 年前

    检查Eric Petrolje的 answer here . 它显示了可以在运行时创建控制台的代码。