Windows操作系统下 使用c++ WIN32API禁用控制台最小化和关闭按钮
有时候部署到服务器上的程序会被人为不小心关掉,所以为了保证程序持续运行,有时需要将右上角的关闭按钮给禁用掉。相应的Win32 API源代码如下:
#include <Windows.h>
int main(int argc, char* argv[])
{
//屏蔽控制台最小按钮和关闭按钮
HWND hwnd = GetConsoleWindow();
HMENU hmenu = GetSystemMenu(hwnd, false);
RemoveMenu(hmenu, SC_CLOSE, MF_BYCOMMAND);
LONG style = GetWindowLong(hwnd, GWL_STYLE);
style &= ~(WS_MINIMIZEBOX);
SetWindowLong(hwnd, GWL_STYLE, style);
SetWindowPos(hwnd, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
ShowWindow(hwnd, SW_SHOWNORMAL);
DestroyMenu(hmenu);
ReleaseDC(hwnd, NULL);
return 0;
}
运行截图如下图所示: