Bunun için SystemEvents fonksiyonlarına bakmalısınız.
Bir örnek.
private static int WM_QUERYENDSESSION = 0x11;
protected override void WndProc(ref System.Windows.Forms.Message m)
{
if (m.Msg==WM_QUERYENDSESSION)
{
MessageBox.Show("Log-off, Shutdown veya Reboot işlemi sonucu form kapandı.");
}
base.WndProc(ref m);
}Ancak, benim tavsiyem programınızı bir windows servisi haline getirmeniz olur.