用c#.NET做的托盘程序,在关机时由于该托盘的存在,计算机不能关机或重起。谁知道是什么原因?如何处理?
解决方案 »
- c# Replace怎样用textbox的字符替换指定tet文件中指定的字符
- 关于richTextBox1里的换行保存问题
- Xpath问题
- 如何遍历RichTextBox控件中的内容?
- 数据库里有N多网址,怎么用杀毒软件检测是否被挂马
- 如何用inputbox输入创建treeview节点??
- app.config 文件不能在运行时修改吗?提示 "此操作在运行时不应用" 的错误
- 做了个应用程序~ 界面的美化过关了~又来了新的问题,头说我的界面不友好~!
- 请问如何实现与系统时间的比较
- 不是有效的Win32资源文件?????
- 为什么实现同样的功能用循环就快,用多线程就非常慢?所用时间是循环的10倍!
- 找不到ExplorerGUIDs的类型或名子空间
http://blog.csdn.net/chengking/archive/2005/12/24/561259.aspx
打不开呀
那么最大的原因是你没有结束你的线程,你可以捕捉到Windows的关键事件,在这个时候你结束你的应用程序,并推出所有的线cheng,
这可以解决你的问题
那么关机的关键事件是什么呢?
在Windows程序中主线程中加上
const int WM_QUERYENDSESSION = 0x0011;
protected override void WndProc(ref Message m)
{
switch (m.Msg)
{ case WM_QUERYENDSESSION:
//在这里处理你的资源和线程,让他们全部退出
ReleaseResource();
this.Close();
this.Dispose();
Application.Exit(); //m.Result = (IntPtr)0;
break;
default:
break;
}
base.WndProc(ref m);
}