|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Nov 2010
Messaggi: 211
|
[C] impedire chiusura programma tramite chiusura finestra
Ciao, esiste qualche modo di eseguire delle istruzioni prima che il programma si chiuda?
Esempio, il programma è in corso ma un utente decide di chiudere il programma cliccando sulla X in alto alla destra della finestra, posso eseguire altre istruzioni prima che il programma si chiuda? Qualcosa del tipo bloccarlo oppure impedire proprio all'utente di chiuderlo. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
|
http://www.cplusplus.com/reference/c...stdlib/atexit/
anche se non sono sicuro che vengano chiamate sempre le funzioni aggiunte con atexit :/ |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Limitandosi alle Win32 se non ricordo male dovrebbe bastare gestire l'evento SC_CLOSE. |
|
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Nov 2010
Messaggi: 211
|
@tuccio` mi sembra che in condizioni normali funzioni, ma la chiusura è estremamente lenta (anche se deve eseguire una istruzione semplice).
@tomminno (si, windows) non sono sicuro di sapere cosa sia un evento, potresti farmi un esempio completo (non ho trovato materiale in italiano abbastanza esaustivo) sono nella fase iniziale di apprendimento della programmazione Ultima modifica di biowep : 02-07-2011 alle 12:35. |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
|
il consiglio di tomminno è valido se hai un'applicazione con una finestra (una gui insomma), e vuoi fare qualcosa quando viene chiusa quella.. Windows ti mette a disposizione nell'api un modo per gestire anche l'evento di chiusura della console (SetConsoleCtrlHandler ti permette di gestione gli della console, con l'inglese ti conviene farci il callo
).. però non credo convenga, proprio perché c'è la atexit che è portabile.. detto questo, mi sembra strano che ti rallenti, non dovrebbe far altro che chiamare la tua funzione
|
|
|
|
|
|
#6 | |
|
Member
Iscritto dal: Nov 2010
Messaggi: 211
|
Quote:
il programma ha smesso di funzionare... dopo che riprende normalmente bisogna cliccare una seconda volta sulla X per chiuderlo comunque il risultato è soddisfacente grazie |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:00.












).. però non credo convenga, proprio perché c'è la atexit che è portabile.. detto questo, mi sembra strano che ti rallenti, non dovrebbe far altro che chiamare la tua funzione








