Accertare un arresto sta chiudendo la mia domanda

È ansible in .NET verificare se la mia applicazione si sta chiudendo perché a Windows viene dato un comando di spegnimento (al contrario di qualsiasi chiusura di un’applicazione precedente) per scrivere alcuni file temporanei della cache o addirittura bloccare l’arresto abbastanza a lungo da richiedere input dell’utente?

Sebbene il mio ambito attuale riguardi un’app Winform e un servizio Windows, sono interessato a capirlo, se ansible, in un modo generico

    SystemEvents.SessionEnding sembra un buon punto di partenza per te. Questo articolo parla della sequenza di eventi coinvolti quando si verifica un logout / shutdown.

    In generale, dovrai gestire il messaggio Windows WM_QUERYENDSESSION . Ciò darà alla tua applicazione la possibilità di fare pulizia, o di bloccare l’arresto se è veramente necessario.

    Gestire l’evento SessionEnded sul tipo Microsoft.Win32.SystemEvents.