16/03/10 21:40
robrock80
Salve a tutti. In Windows esiste un modo per intercettare da parte del processo stesso la sua chiusura?
Ossia c'è un modo per lanciare una funzione da parte del processo stesso qualora venisse killato?
Ultima modifica effettuata da robrock80 16/03/10 21:47
aaa
17/03/10 8:58
The SIGILL and SIGTERM signals are not generated under Windows.
17/03/10 9:58
robrock80
Postato originariamente da nessuno:
The SIGILL and SIGTERM signals are not generated under Windows.
... They are included for ANSI compatibility. Thus you can set signal handlers for these signals with signal, and you can also explicitly generate these signals by calling raise.
Non riesco a capire il continuo (preso su MSDN) della riga che tu hai scritto (Maledetto inglese)
Ultima modifica effettuata da robrock80 17/03/10 10:01
aaa
17/03/10 10:29
Non puoi usare quei segnali perchè non sono generati da Windows. Per compatibilità, puoi indicare nel tuo codice delle funzioni che le gestiscano e puoi esplicitamente generare i segnali chiamando la raise.
In pratica, non funzionerà se chiudi un processo dal task manager.
Per individuare la chiusura di un processo, mi sa che l'unico modo è effettuare un hooking della API TerminateProcess (una sorta di detours) ... ma non è affatto una cosa semplice.
17/03/10 10:44
Sì ... potrebbe ma
1) il lavoro potrebbe rivelarsi complesso, più di quanto appare nell'articolo ...
2) questo tipo di approccio potrebbe essere individuato come "malvagio" da parte di antivirus ...
3) probabilmente ti basta un metodo più semplice ...
Pensavo ad un processo "sentinella" avviato dal processo principale. Potrebbero "sorvegliarsi" a vicenda (a tempo) in modo che uno riavvii l'altro quando non lo trova.
17/03/10 10:50
robrock80
... Avevo pensato anche io alla soluzione di un handler al processo, ma se riesco a renderlo autonomo è meglio. Stò leggendo l'articolo ed è un pò complicato: io ci provo...
Ti ringrazio per l'attenzione dedicata fino ad ora e se riesci a scoprire qualcosa al riguardo (o se decidi di cimentartici) fammi sapere.
Ultima modifica effettuata da robrock80 17/03/10 10:52
aaa