如何在C++中隐藏控制台窗口启动

如何在C++中隐藏控制台窗口启动

控制台 是一种操作系统窗口,用户可以通过它使用计算机键盘输入文本或读取计算机终端的文本输出与操作系统进行交互。

控制台一词源于法语单词“consolide”,它源于拉丁单词“consolidare”,意思是强化。

C++中隐藏控制台窗口的方法

1. 使用ShowWindow()函数和IsConsoleVisible()函数

ShowWindow函数显示或隐藏窗口,该函数可以最小化、最大化或还原给定的窗口。如果该函数返回0,则表示在调用ShowWindow函数之前该窗口已被隐藏,如果它返回一个非零值,则表示它曾经是可见的。

语法:

BOOL ShowWindow(
     [in] HWND hWnd,
     [in] int  nCmdShow
);
C++

值: SW_HIDE 0

含义: 隐藏窗口并激活另一个窗口。

#include <iostream>
#include <windows.h>
  
using namespace std;
  
void countdown ()
{
    cout<<"3"<<endl;
    Sleep(1000);
    cout<<"2"<<endl;
    Sleep(1000);
    cout<<"1"<<endl;
    Sleep(1000);
    cout<<"0"<<endl;
}
  
int main ()
{
    countdown();
    HWND window;
    AllocConsole();
    window = FindWindowA("ConsoleWindowClass", NULL);
    ShowWindow(window, 0);
      
    countdown();
    ShowWindow(window, 1);
}  
C++

输出:

如何在C++中隐藏控制台窗口启动

2

示例:

#include <Windows.h>
  
int main(){
    
    void HideConsole()
    {
        ::ShowWindow(::GetConsoleWindow(), SW_HIDE);
    }
  
    void ShowConsole()
    {
        ::ShowWindow(::GetConsoleWindow(), SW_SHOW);
    }
  
    bool IsConsoleVisible()
    {
        return ::IsWindowVisible(::GetConsoleWindow()) != FALSE;
    }
}  
C++

解释: 了解程序的关键函数可以理解程序的执行。

  • #include<windows.h>——在C和C++编程语言中,windows.h头文件专门用于Windows,并包含大量的Windows特定功能
  • ShowWindow。GetConsoleWindow用于检索控制台使用的窗口句柄。
  • IsWindowVisible用于检查窗口是否可见。
  • ShowWindow()函数控制如何在设备上显示窗口。SW_HIDE用于隐藏窗口。
  • GetConsoleWindow()函数不带参数,返回与调用进程关联的控制台使用的窗口句柄,如果没有这样的关联控制台,则返回NULL。

注意: 若要隐藏控制台但仍可在任务栏中看到,请使用SW_MINIMIZE而不是SW_HIDE。

适用于Windows系统:

#include <iostream>
#include <windows.h>
using namespace std;
  
int main(){
    ShowWindow(GetConsoleWindow(), SW_HIDE);
}  
C++

注意: 这将返回一个句柄(HWND)给ShowWindow()函数,用于隐藏控制台窗口。

2. 使用FreeConsole()函数

FreeConsole()函数可用于将进程与其控制台分离。如果两个或多个进程共享同一个控制台,则不会销毁控制台,但调用FreeConsole的进程无法引用它。当附加到它的最后一个进程终止或调用FreeConsole()函数时,控制台关闭。

示例代码:

#include <iostream>
using namespace std;
  
int main() {
  
    BOOL WINAPI FreeConsole(VOID);
}  
C++

除以上方法以外,我们也可以在程序中加入以下代码以在启动时隐藏控制台窗口。

示例代码:

#include <iostream>
using namespace std;
  
int main() {
  
    myConsole = GetConsoleWindow();
    ShowWindow(myConsole,0);
}  
C++

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册