public void LoadConsole(object wrapper) { WinApiHelper.AllocConsole(); ConsoleHandle = WinApiHelper.FindWindow(null, Process.GetCurrentProcess().MainModule.FileName); IntPtr closeMenu = WinApiHelper.GetSystemMenu(ConsoleHandle, IntPtr.Zero); uint SC_CLOSE = 0xF060; WinApiHelper.RemoveMenu(closeMenu, SC_CLOSE, 0x0); HandleRef ParentHandle = new HandleRef(wrapper, ConsoleHandle); // 初始化窗口风格 IntPtr Style = WinApiHelper.GetWindowLongPtr(ConsoleHandle, WinApiHelper.GWL_STYLE); uint tempStyle = (uint)Style.ToInt32() & ~WinApiHelper.WS_CAPTION & ~WinApiHelper.WS_SYSMENU & ~WinApiHelper.WS_SIZEBOX; WinApiHelper.SetWindowLongPtr(ParentHandle, WinApiHelper.GWL_STYLE, new IntPtr(tempStyle)); WinApiHelper.SetParent(ConsoleHandle, ((Control)wrapper).Handle); //panel1.Handle为要显示外部程序的容器 WinApiHelper.ShowWindow(ConsoleHandle, 3); }