关于关机代码另开一贴,继续问题。

蔡袅 2013-07-30 10:42:59
程序关不了机,Win7下可以,XP都不行

后来根据各位的建议和思路改进了代码,但是现在关机的时候可以退出我的程序了,可是每次要关机两次操作才能完全关成功,是什么原因? 代码如下:
const int WM_ENDSESSION = 0x0016;
const int WM_QUERYENDSESSION = 0x0011;
/// <summary>
/// 询问是否关机(false否关机,true是关机)
/// </summary>
bool bQueryExitApp = false;
#region 关机代码
/// <summary>
/// 操作系统关闭时,关闭应用程序
/// </summary>
/// <param name="m">截获系统消息</param>
protected override void WndProc(ref Message m)
{
switch (m.Msg)
{
case WM_QUERYENDSESSION://WM_QUERYENDSESSION
bQueryExitApp = true;
break;
case WM_ENDSESSION://WM_ENDSESSION 系统指示:关掉
{
bQueryExitApp = true;
this.notifyJasic.Visible = false;
this.notifyJasic.Dispose();
this.tmRefreshDBSX.Enabled = false;
this.tmRefreshDBSX.Dispose();
KillSendImageThread();
KillRefreshThread();
CloseAllOpenForm();
try
{
this.Close();
}
catch (Exception ex)
{
Environment.Exit(-1);
}
Application.Exit();
}
break;
default:
break;
}
base.WndProc(ref m);
}

private void FrmMsgMain_FormClosing(object sender, FormClosingEventArgs e)
{
if (!bQueryExitApp)
{
e.Cancel = true;
this.Hide();
}
}
...全文
72 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
蔡袅 2013-07-30
  • 打赏
  • 举报
回复
我做了日志,代码能执行完 WM_ENDSESSION的Application.Exit();语句,可是我的程序退出了,还得点一次关机才成。
蔡袅 2013-07-30
  • 打赏
  • 举报
回复
hi ,有人在吗
蔡袅 2013-07-30
  • 打赏
  • 举报
回复
没人?论坛怎么了。

110,565

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧