关闭控制台窗口时,将关闭所有应用程序

本文关键字:应用程序 控制台 窗口 | 更新日期: 2023-09-27 18:01:17

我正在使用windows表单,我有一个主要的表单,当我点击一些按钮时,他打开一个控制台窗口做一些工作,当它完成时,我想关闭控制台而不关闭所有应用程序(主表单)。我尝试关闭控制台与Environment.Exit(1)或功能Destroy()属于Destroy()Create()控制台窗口。Environment.Exit(1)Destroy()既关闭控制台,也关闭表单。我想知道是否有一种方法可以只关闭控制台而不关闭整个应用程序

编辑

    private void btSync_Click(object sender, EventArgs e)
    {
        Create();
        ServerSync sycs=new ServerSync();
        Thread sync = new Thread(new ThreadStart(sycs.run));
        sync.Start();
    }

Create()打开一个运行Socket()线程的控制台窗口。

问题解决了当我启动线程时,我添加到代码末尾的ThreadName.Abort和线程外,我检查是否ThreadName.IsAlived==false和内部如果我Hide()控制台,然后Destroy()及其作品!

Hide()方法从AppDeveloper答案。谢谢你的帮助!

关闭控制台窗口时,将关闭所有应用程序

不使用Environment.Exit()隐藏Console Window

using System.Runtime.InteropServices;
[DllImport("kernel32.dll")]
static extern IntPtr GetConsoleWindow();
[DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
const int SW_HIDE = 0x0;
const int SW_SHOW = 0x5;
public static void HideConsoleWindow()
{
    var handle = GetConsoleWindow();
    ShowWindow(handle, SW_HIDE);
}

也许有一个console.hide()选项?可以试试