Re: How do I intercept a close event?
From: Branimir Giurov [C# MVP] (branimir_at_online.nospam)
Date: 01/13/05
- Next message: DAMAR: "Re: properties in c#"
- Previous message: Steven Castle via DotNetMonster.com: "Re: Any tips for a component or something?"
- In reply to: Tinius: "Re: How do I intercept a close event?"
- Next in thread: Tinius: "Re: How do I intercept a close event?"
- Reply: Tinius: "Re: How do I intercept a close event?"
- Messages sorted by: [ date ] [ thread ]
Date: Thu, 13 Jan 2005 04:49:42 -0800
Hi Tinius,
I think that the easiest way of capturing the close event of the form, is
in fact to capture the WM_CLOSE message that's being send to the form through
the message loop of the OS. Here's an easy way for doing that
//insert the following code inside your main form class:
const int WM_CLOSE = 16;
protected override void WndProc(ref Message m)
{
base.WndProc (ref m);
if ( WM_CLOSE == m.Msg )
{
//closing
Trace.WriteLine(Application.ExecutablePath + " is exiting !!!");
}
}
Cheers,
Branimir
Branimir Giurov
C# MVP, MCSD, MCDBA, MCT
CTO, BSH Ltd.
www.sofiadev.org
> I cannot get Environment.HasShutdownStarted to work.
> I placed it in;
> private void MainForm_Closing(object sender,
> System.ComponentModel.CancelEventArgs e)
> but it always returns false, even when shutting down WindowsXP prof.
>
> I placed this MessageBox in the same routine;
> MessageBox.Show(Environment.HasShutdownStarted.ToString(),"Shutting
> Down?"); which always returns FALSE.
>
> I'm at a loss with how to differentiate between the User closing the
> app down and Windows closing the app down
>
> I even wrote a second very simple app and placed the
> Environment.HasShutdownStarted in the form1_closing event. Still
> always returns false.
>
> I must be missing something obvious?
>
> Tinius
>
> "Greg Bacchus" wrote:
>
>> One note on that though. You should first check if the computer is
>> being shut down, otherwise the form will not automatically be closed
>> and the computer will not turn off.
>>
>> private void MainForm_Closing(object sender,
>> System.ComponentModel.CancelEventArgs e)
>> {
>> if( !Environment.HasShutdownStarted )
>> {
>> e.Cancel = true;
>> this.Hide();
>> }
>> }
- Next message: DAMAR: "Re: properties in c#"
- Previous message: Steven Castle via DotNetMonster.com: "Re: Any tips for a component or something?"
- In reply to: Tinius: "Re: How do I intercept a close event?"
- Next in thread: Tinius: "Re: How do I intercept a close event?"
- Reply: Tinius: "Re: How do I intercept a close event?"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|