如题,在windows上新建控制台应用程序的时候,怎么才能将console 黑窗口隐藏起来。
第一种方法:
::SetConsoleTitle(_T("test_exe")); HWND hwnd=::FindWindow(_T(""),_T("test_exe")); ::ShowWindow(hwnd,SW_HIDE);
不行,试了,不清楚为什么失败….
窗口句柄抓到了,就是不明白为什么隐藏不了。。。。。。⊙﹏⊙b汗
两种方法抓到的句柄一模一样,同样的ShowWindow()函数,一个可以,一个不可以………..⊙﹏⊙b汗,好坑。。。。
第二种:
用spy++获得cmd窗口的类名称:
获得console窗口的类名称:ConsoleWindowClass
OK。
HWND hwnd; hwnd=::FindWindow(_T("ConsoleWindowClass"),NULL); ::ShowWindow(hwnd,SW_HIDE);
通过窗口类名称调用 FindWindow()函数OK,可以隐藏console窗口。
第三种:
网上好多都是这种:
#pragma comment( linker, "/subsystem:\"windows\" /entry:\"wmainCRTStartup\"" ) 设置VS的链接器配置。
通过设置链接子系统为windows修改默认的console属性,并且制定程序的主入口地址:wmainCRTStartup
(unicode字符集下是wmainCRTStartup,多字节字符组则是mainCRTStartup);通过这种方式同样也可以达到
隐藏console窗口的效果。