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

时间:2013-02-27 11:47:12

标签: c#

我正在使用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并在if Hide()控制台内,然后Destroy()和它的作品!

来自 AppDeveloper Hide()方法。 谢谢你的帮助!

2 个答案:

答案 0 :(得分:1)

而不是使用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);

}

答案 1 :(得分:0)

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