如何捕获windows的关机和休眠命令?
是捕获,拦截下来,然后判断是什么命令,作相应的处理,
不知道是用钩子呢?还是用API注册呢?
是捕获,拦截下来,然后判断是什么命令,作相应的处理,
不知道是用钩子呢?还是用API注册呢?
解决方案 »
- MD5换算到数据库上了,但是登陆密码只能输入MD5换算的值,自己设置的密码,登不上,高手进!
- 请各位大侠帮我解释一下:SocketAsyncEventArgsPool
- 【有什么办法可以使combox里面的序列乱掉?[帮顶有分]
- 求一sql函数(高手进)急等
- winform小问题,解决马上结贴!!
- 一个有难度的C#技术问题
- 怎么不能从System.Net.sockets.socket类中派生我的socket类??
- 为什么我新建不了.net WEb应用程序
- clickonce 部署问题
- C# 服务监控与诊断
- 程序中遇到想重启的情况,调用Application.Restart();可以么?
- Webbrowser如何获取页面Input值
判断。
/// 重载WndProc消息处理函数
/// </summary>
/// <param name="m">windows消息 </param>
protected override void WndProc(ref System.Windows.Forms.Message m)
{
try
{
switch(m.Msg)
{
//系统退出消息处理,WM_QUERYENDSESSION是询问程序是否需要关闭,
//要有相应的反回值,0不关闭程序;1关闭程序
case WM_QUERYENDSESSION:
m.Result = (IntPtr)WM_TRUE;
return;
//休眠事件处理
case WM_POWERBROADCAST :
if (m.WParam == (IntPtr)PBT_APMQUERYSUSPEND)
{
//系统即将休眠消息处理
try
{
this.BusManager.Close();
m.Result = (IntPtr)WM_TRUE;
}
catch
{ //捕捉异常,不做处理
}
}
break;
default:
break;
}
base.WndProc (ref m);
}
catch(Exception e)
{
MessageBox.Show(e.Message);
}
}
MousehHook = Win32API.SetWindowsHookEx(WH_MOUSE_LL, MouseHookProcedure, pInstance, 0);我不知道是不是这个意思,但是那些个参数,不知道到底SetWindowsHookEx应该怎么设置,才可以拦截ExitWindowsEx的消息阿