Qualcuno sa come disabilitare il pulsante di chiusura su una finestra della console di windows con un eseguibile .exe
creato da un programma C?Come disattivare il pulsante di chiusura in C?
risposta
Se si desidera disabilitare un pulsante in un programma in esecuzione ci sono dei metodi per farlo.
Il principio è trovare la finestra, quindi trovare il pulsante all'interno della finestra e quindi inviare un messaggio WM_DISABLE al pulsante.
Da here:
#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;
}
Non sono configurato per verificare questo, quindi 1 assumendo che funzioni. Non sapevo che avresti potuto afferrare la maniglia della finestra della console in quel modo. – Mysticial
non ha funzionato, prova questo sul compilatore online: cmpe150-1.cmpe.boun.edu.tr/ – user1590836
mi dispiace, funziona. Ho appena scritto l'altro codice prima di questo – user1590836
Non è possibile. La finestra della console è un componente separato. L'unico modo è quello di creare un programma GUI in cui hai il controllo della tua finestra. – Mysticial
Inoltre, perché vorresti farlo? – Mysticial
voglio solo fare uno scherzo a mio fratello. ma devo assicurarmi che faccia paura. Sai che altro modo posso usare? dal modo in cui l'unico linguaggio di programmazione è konw è c, sfortunatamente – user1590836