隐藏控制台console application窗口

如题,在windows上新建控制台应用程序的时候,怎么才能将console 黑窗口隐藏起来。

第一种方法:

::SetConsoleTitle(_T("test_exe"));
HWND hwnd=::FindWindow(_T(""),_T("test_exe"));
::ShowWindow(hwnd,SW_HIDE);

不行,试了,不清楚为什么失败….

imageimage

窗口句柄抓到了,就是不明白为什么隐藏不了。。。。。。⊙﹏⊙b汗

image

两种方法抓到的句柄一模一样,同样的ShowWindow()函数,一个可以,一个不可以………..⊙﹏⊙b汗,好坑。。。。

第二种:

用spy++获得cmd窗口的类名称:

image

获得console窗口的类名称:ConsoleWindowClass

image

OK。

HWND hwnd;
hwnd=::FindWindow(_T("ConsoleWindowClass"),NULL);
::ShowWindow(hwnd,SW_HIDE);

通过窗口类名称调用 FindWindow()函数OK,可以隐藏console窗口。

第三种:

网上好多都是这种:

image

#pragma comment( linker, "/subsystem:"windows" /entry:"wmainCRTStartup"" ) 设置VS的链接器配置。

通过设置链接子系统为windows修改默认的console属性,并且制定程序的主入口地址:wmainCRTStartup

(unicode字符集下是wmainCRTStartup,多字节字符组则是mainCRTStartup);通过这种方式同样也可以达到

隐藏console窗口的效果。

原文地址:https://www.cnblogs.com/sunbing/p/3881301.html