devxlogo

Prevent Shutdown from a C# App

Prevent Shutdown from a C# App

It is possible to prevent a system shutdown from within your C# apps. Basically the premise is as follows:

Override the WndProc event so that when a system shutdown event gets fired onto your app, block it with a messagebox saying: ‘Hey! I’m still working over here!’

The code is as follows:

private const int WM_QUERYENDSESSION=0x0011;private bool isShuttingDown=false;protected override void WndProc(ref Message m){if(m.Msg==WM_QUERYENDSESSION){isShuttingDown=true;}base.WndProc(ref m);}private void frmLogin_Closing(object sender, System.ComponentModel.CancelEventArgs e){if(isShuttingDown){if(MessageBox.Show(this,"The application is still running, are you sure you want to exit?","Confirm Closing by Windows Shutdown",MessageBoxButtons.YesNo,MessageBoxIcon.Warning)==System.Windows.Forms.DialogResult.Yes){e.Cancel=false;}elsee.Cancel=true;}}

The code identifies the ‘shutdown'(Query End Session ) event and isolates it so that it can be blocked

devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist