Как отключить кнопку закрытия в C?
Кто-нибудь знает, как отключить кнопку закрытия в окне консоли Windows с .exe
исполняемый файл, который был создан из программы на C?
2 ответа
#define _WIN32_WINNT 0x0500
#include <stdio.h>
#include <windows.h>
int main(int argc, _TCHAR* argv[]){
HWND h;
HMENU sm;
int i, j, c;
LPTSTR buf;
// get the handle to the console
h = GetConsoleWindow();
// get handle to the System Menu
sm = GetSystemMenu(h, 0);
// how many items are there?
c = GetMenuItemCount(sm);
j = -1;
buf = (TCHAR*) malloc (256 *sizeof(TCHAR));
for (i=0; i<c; i++) {
// find the one we want
GetMenuString(sm, i, buf, 255, MF_BYPOSITION);
if (!strcmp(buf, "&Close")) {
j = i;
break;
}
}
// if found, remove that menu item
if (j >= 0)
RemoveMenu(sm, j, MF_BYPOSITION);
return 0;
}
Если вы хотите отключить кнопку в работающей программе, есть способы сделать это.
Принцип состоит в том, чтобы найти окно, затем найти кнопку внутри окна и затем отправить сообщение WM_DISABLE для кнопки.