关于拦截系统关机并取消关机的操作
现在需求大致如下:
当前程序(winform)运行后,因为如果直接关机的话,会影响到其他打印机的打印,所以现在想拦截一下系统关机,让操作人手动处理好后再关机。
现在运用到的拦截关机代码如下:
//构造函数
public FrmMain()
{
Microsoft.Win32.SystemEvents.SessionEnding += SessionEndingEvent;
}
/// <summary>
/// 关机拦截事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void SessionEndingEvent(object sender, SessionEndingEventArgs e)
{
SessionEndReasons endReasons = e.Reason;
if (MessageBox.Show("XXXXXXXXXXXXXXX", "提示", MessageBoxButtons.YesNo)
== System.Windows.Forms.DialogResult.Yes)
{
// 关机或注销
e.Cancel = false;
}
else
{
// 取消关机或注销
e.Cancel = true; //这句以及上面那句好像没起作用
}
}
=========================================
现在的情况是可以拦截到关机或注销信息(win7下),即会弹出"XXXXXXXXXXXXXXX"的提示信息,但是点击取消的时候无法取消注销或关机,即注销和关机是照常进行的。请问哪位知道该怎样取消注销和关机呢?或者如果用到xin消息的处理的话该怎样处理,小弟感激不尽~!!!!!!