Connecting Tech Pros Worldwide Forums | Help | Site Map

Windows won't shut down

Claire
Guest
 
Posts: n/a
#1: Nov 16 '05
Running XP pro, SP2. Visual studio .NET 2003. App written in C#

I have written an application that hides itself when run and shows a
notification icon in the system tray.
If the main form is visible/restored to the desktop, and I tell windows to
restart, windows shuts down fine.
If the main form is minimized to the tray and I tell windows to restart,
other desktop apps close down fine but my program's icon remains sat in the
system tray, windows doesn't close down and there's no error messages.
In normal use, I only allow the app to close down from a right button mouse
activated menu when the app sits in the task bar.

The code for the Closing event is as follows. The menu "close application"
click changes the DialogResult from None to Cancel.
I tested and found that the Closing event is being called in both cases and
,afaik, the result should be ignored anyway as Windows OS is being closed
down.
private void frmOptions_Closing(object sender,
System.ComponentModel.CancelEventArgs e)

{

if (DialogResult == DialogResult.None)

{

e.Cancel = true;

WindowState = FormWindowState.Minimized;

}


}



Nicholas Paldino [.NET/C# MVP]
Guest
 
Posts: n/a
#2: Nov 16 '05

re: Windows won't shut down


Claire,

I don't think that is the case. When windows is shutting down, if your
app cancels the request to shut down, then it will halt the shutdown.

I think that you should override the WndProc method of your form, and
then handle the WM_QUERYENDSESSION and WM_ENDSESSION messages yourself,
indicating that it is ok to shut down when you get them. I think that the
cancel request from your Closing event handler is being channeled back in
response to these messages.

Hope this helps.

--
- Nicholas Paldino [.NET/C# MVP]
- mvp@spam.guard.caspershouse.com

"Claire" <asdfkjasl@ntlworld.com> wrote in message
news:%23VpjArGrEHA.3748@TK2MSFTNGP09.phx.gbl...[color=blue]
> Running XP pro, SP2. Visual studio .NET 2003. App written in C#
>
> I have written an application that hides itself when run and shows a
> notification icon in the system tray.
> If the main form is visible/restored to the desktop, and I tell windows to
> restart, windows shuts down fine.
> If the main form is minimized to the tray and I tell windows to restart,
> other desktop apps close down fine but my program's icon remains sat in
> the
> system tray, windows doesn't close down and there's no error messages.
> In normal use, I only allow the app to close down from a right button
> mouse
> activated menu when the app sits in the task bar.
>
> The code for the Closing event is as follows. The menu "close application"
> click changes the DialogResult from None to Cancel.
> I tested and found that the Closing event is being called in both cases
> and
> ,afaik, the result should be ignored anyway as Windows OS is being closed
> down.
> private void frmOptions_Closing(object sender,
> System.ComponentModel.CancelEventArgs e)
>
> {
>
> if (DialogResult == DialogResult.None)
>
> {
>
> e.Cancel = true;
>
> WindowState = FormWindowState.Minimized;
>
> }
>
>
> }
>[/color]


david.kao@opco.com
Guest
 
Posts: n/a
#3: Nov 16 '05

re: Windows won't shut down


Hi Nicholas:

I have a similar issue that Claire has. But I have no idea how to implement
WndProc.

Can you show me how to implement WndProc ?

Thanks

David Kao

"Nicholas Paldino [.NET/C# MVP]" wrote:
[color=blue]
> Claire,
>
> I don't think that is the case. When windows is shutting down, if your
> app cancels the request to shut down, then it will halt the shutdown.
>
> I think that you should override the WndProc method of your form, and
> then handle the WM_QUERYENDSESSION and WM_ENDSESSION messages yourself,
> indicating that it is ok to shut down when you get them. I think that the
> cancel request from your Closing event handler is being channeled back in
> response to these messages.
>
> Hope this helps.
>
> --
> - Nicholas Paldino [.NET/C# MVP]
> - mvp@spam.guard.caspershouse.com
>
> "Claire" <asdfkjasl@ntlworld.com> wrote in message
> news:%23VpjArGrEHA.3748@TK2MSFTNGP09.phx.gbl...[color=green]
> > Running XP pro, SP2. Visual studio .NET 2003. App written in C#
> >
> > I have written an application that hides itself when run and shows a
> > notification icon in the system tray.
> > If the main form is visible/restored to the desktop, and I tell windows to
> > restart, windows shuts down fine.
> > If the main form is minimized to the tray and I tell windows to restart,
> > other desktop apps close down fine but my program's icon remains sat in
> > the
> > system tray, windows doesn't close down and there's no error messages.
> > In normal use, I only allow the app to close down from a right button
> > mouse
> > activated menu when the app sits in the task bar.
> >
> > The code for the Closing event is as follows. The menu "close application"
> > click changes the DialogResult from None to Cancel.
> > I tested and found that the Closing event is being called in both cases
> > and
> > ,afaik, the result should be ignored anyway as Windows OS is being closed
> > down.
> > private void frmOptions_Closing(object sender,
> > System.ComponentModel.CancelEventArgs e)
> >
> > {
> >
> > if (DialogResult == DialogResult.None)
> >
> > {
> >
> > e.Cancel = true;
> >
> > WindowState = FormWindowState.Minimized;
> >
> > }
> >
> >
> > }
> >[/color]
>
>
>[/color]
Nicholas Paldino [.NET/C# MVP]
Guest
 
Posts: n/a
#4: Nov 16 '05

re: Windows won't shut down


David,

It's just an override on your main form:

protected override void WndProc(ref Message m)
{
// Perform pre-processing here.

// Call the base.
base.WndProc(ref m);

// Post-processing here.
}

What you do for the pre or post processing is up to you.

--
- Nicholas Paldino [.NET/C# MVP]
- mvp@spam.guard.caspershouse.com

"david.kao@opco.com" <davidkaoopcocom@discussions.microsoft.com> wrote in
message news:DF11CB12-9C19-46FE-BF92-C36EB9F07A62@microsoft.com...[color=blue]
> Hi Nicholas:
>
> I have a similar issue that Claire has. But I have no idea how to
> implement
> WndProc.
>
> Can you show me how to implement WndProc ?
>
> Thanks
>
> David Kao
>
> "Nicholas Paldino [.NET/C# MVP]" wrote:
>[color=green]
>> Claire,
>>
>> I don't think that is the case. When windows is shutting down, if
>> your
>> app cancels the request to shut down, then it will halt the shutdown.
>>
>> I think that you should override the WndProc method of your form, and
>> then handle the WM_QUERYENDSESSION and WM_ENDSESSION messages yourself,
>> indicating that it is ok to shut down when you get them. I think that
>> the
>> cancel request from your Closing event handler is being channeled back in
>> response to these messages.
>>
>> Hope this helps.
>>
>> --
>> - Nicholas Paldino [.NET/C# MVP]
>> - mvp@spam.guard.caspershouse.com
>>
>> "Claire" <asdfkjasl@ntlworld.com> wrote in message
>> news:%23VpjArGrEHA.3748@TK2MSFTNGP09.phx.gbl...[color=darkred]
>> > Running XP pro, SP2. Visual studio .NET 2003. App written in C#
>> >
>> > I have written an application that hides itself when run and shows a
>> > notification icon in the system tray.
>> > If the main form is visible/restored to the desktop, and I tell windows
>> > to
>> > restart, windows shuts down fine.
>> > If the main form is minimized to the tray and I tell windows to
>> > restart,
>> > other desktop apps close down fine but my program's icon remains sat in
>> > the
>> > system tray, windows doesn't close down and there's no error messages.
>> > In normal use, I only allow the app to close down from a right button
>> > mouse
>> > activated menu when the app sits in the task bar.
>> >
>> > The code for the Closing event is as follows. The menu "close
>> > application"
>> > click changes the DialogResult from None to Cancel.
>> > I tested and found that the Closing event is being called in both cases
>> > and
>> > ,afaik, the result should be ignored anyway as Windows OS is being
>> > closed
>> > down.
>> > private void frmOptions_Closing(object sender,
>> > System.ComponentModel.CancelEventArgs e)
>> >
>> > {
>> >
>> > if (DialogResult == DialogResult.None)
>> >
>> > {
>> >
>> > e.Cancel = true;
>> >
>> > WindowState = FormWindowState.Minimized;
>> >
>> > }
>> >
>> >
>> > }
>> >[/color]
>>
>>
>>[/color][/color]


Claire
Guest
 
Posts: n/a
#5: Nov 16 '05

re: Windows won't shut down


Thanks Nicholas,
I don't believe my app is receiving this message.
It's very difficult to track down as you can't run the app in the debugger
at that level of shutdown.
I stuck a message box in wndproc to show on either message and it didn't
fire.


Closed Thread