用C#创建一个windows 应用程序,当程序以托盘的形式运行时,若关闭系统,若不首先关闭该程序,系统无法关机,
解决方法如下:
首先 声明 全局变量
private const int WM_QUERYENDSESSION = 0x0011;
重写Form类方法WndProc
/// <summary>
/// get windows message to close application
/// </summary>
/// <param name="m"></param>
protected override void WndProc(ref Message m)
{
switch (m.Msg)
{
case WM_QUERYENDSESSION:
CloseForm();
break;
default:
break;
}
base.WndProc(ref m);
}
只打开一个进程
[STAThread]
static void Main()
{
bool Result;
//if the application does not start then start
Mutex mutex = new Mutex(true, Application.ProductName, out Result);
if (Result)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new SKSIndex());
mutex.ReleaseMutex();
}
}