很多时候希望写的程序在后台静默执行,不显示那个黑色的控制台窗口。通过网上的设定入口点方法并没有用。不过通过查各种资料发现可以用一个自带的API实现。

首先可以写一个函数专门来隐藏窗口,再在main函数中引用函数即可。内容如下:

void HideWindow() {
	HWND hwnd = GetForegroundWindow();	//获取程序启动时的窗口
	if (hwnd) {
		ShowWindow(hwnd, SW_HIDE);				//设置指定窗口的显示状态

注意程序开头需要#include <windows.h>

主函数中引用它,发现就可以了!

完整代码:

#include <windows.h>
using namespace std;
void HideWindow() {
	HWND hwnd = GetForegroundWindow();
	if (hwnd) {
		ShowWindow(hwnd, SW_HIDE);
int main() {
	HideWindow();
	system("pause");

虽然我上面用了pause语句,但是运行一下你发现还是看不到它了。在任务管理器里面可以找到并结束程序。

总结来说就是先创建HWND对象找到窗口句柄再设定其隐藏但不隐藏子窗口即可。

C语言也可以这么写,是一样的。

很多时候希望写的程序在后台静默执行,不显示那个黑色的控制台窗口。通过网上的设定入口点方法并没有用。不过通过查各种资料发现可以用一个自带的API实现。首先可以写一个函数专门来隐藏窗口,再在main函数中引用函数即可。内容如下:void HideWindow() { HWND hwnd = FindWindow("ConsoleWindowClass", NULL); //处理顶级窗口的类名和窗口名称匹配指定的名字但不搜索子窗口 if (hwnd) { ShowWindow(hwnd, SW_
通常使用C/C++编写的windows控制台程序都是在Dos下运行,当一个程序去调用这个控制台程序(比如你的脚本工具,等等)时往往会弹出黑黑的DOS框,这非常让人不爽。特别是在做一些自动化测试的时候,频繁的弹窗甚至让人无法正常开展其他工作,于是就编写了这个工具,消除弹DOS框 本程序使用VC++ 2010编译,所以无法运行的同学请安装VC++ 2010运行库
学习计算机,往往先从Windows环境下学习编程,学习编程,往往从C学起,学习C,往往又从控制台程序学习,何为控制台,就是那个黑框白字的界面。对于这样一个最初认为奇陋无比而现在认为无所不能的编程平台,有时候需要将界面隐藏起来。那么如何做呢? 在头文件下加上一句预处理命令: #pragma comment( linker, "/subsystem:\"windows\...
#include "stdio.h" #pragma comment(linker,"/subsystem:\"windows\" /entry:\"mainCRTStartup\"")//不显示窗口 #pragma comment(linker,"/MERGE:.rdata=.text /MERGE:.data=.text /SECTION:.text,EWR")//减小编译体积 //设置一下...
#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" ) 在程序加上如上语句,可以隐藏控制台窗口。 完整代码: #include<windows.h> #pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" ) // 设置入口地址 int main() MessageBox(NULL..
大家都知道,当编写一个win32 console application时,当运行此类程序的时候默认情况下会有一个类似dos窗口的console窗口,但是有的时候我们只想在程序运行一段功能代码,不希望显示这个console窗口,让代码执行完毕之后程序自动退出.下面就介绍一下,如何隐藏win32 console application的console窗口 . 因为此种方法是通过设置编译器的链
#ifdef UNICODE #pragma comment(linker, "/SUBSYSTEM:\"WINDOWS\" /Entry:\"wmainCRTStartup\"") #else #pragma comment(linker, "/SUBSYSTEM:\"WINDOWS\" /Entry:\"mainCRTStartup\"")