dcsimg
Login | Register   
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.


Tip of the Day
Home » Tip Bank » .NET » C#
Language: .NET
Expertise: Intermediate
Apr 11, 2016

WEBINAR:

On-Demand

Application Security Testing: An Integral Part of DevOps


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;
}
else
e.Cancel=true;
}
}

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

Hannes du Preez
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date