Developer, Former MVP, now at Microsoft - Best of 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
protected override void WndProc(ref Message m) { base.WndProc(ref m); if (m.Msg == WM_QUERYENDSESSION) //0x0011 { if ((m.LParam.ToInt32() & ENDSESSION_CLOSEAPP) == ENDSESSION_CLOSEAPP) //0x1 { // some installation will shut us down next, so do some cleanup (prepare for it) File.WriteAllText(Environment.CurrentDirectory + @"\rm.txt", "for demo purposes"); //MessageBox.Show("intercepted", “RM request”); } } }