能力值:
( LV2,RANK:10 )
|
-
-
2 楼
任务管理器是native结束,推荐研究r3 阻止结束进程
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
晕,好好了解下windows编程吧,关机时系统发消息询问,这个你俩还在。。。。
|
能力值:
( LV4,RANK:50 )
|
-
-
4 楼
禁止用户管理器结束进程,网上有使用钩子的例子,如下:
http://wenku.baidu.com/view/b23f1e671ed9ad51f01df20e.html
主要是通过HOOK鼠标消息,当用户点击立即结束进程按钮后返回0,不处理鼠标消息使其失效。
如果是HOOKAPI ,那么可以HOOK OpenProcess函数,判断OpenProcess参数中的进程ID是指定进程ID就直接返回NULL就行了。APIHOOK具体实现如下:
http://wenku.baidu.com/view/d62479791711cc7931b71637.html
如果是禁止系统关机,可以创建窗口响应WM_QUERYENDSESSION消息,当接收到WM_QUERYENDSESSION消息后直接返回FALSE就可以禁止关机了,当然,特殊关机手法除外(如,拔电源,结束winlogon.exe等..)
具体实现如下:
创建MFC工程,建立类向导,把classinfo中的Message Filter改为window
然后在Message Maps找到WM_QUERYENDSESSION消息并添加响应函数OnQueryEndSession
最后把OnQueryEndSession返回值改成FALSE即可,你可以在OnQueryEndSession中处理你需要做的事情。
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
谢谢,这正是我要了解的。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
还有一个问题啊,比如系统要结束我的进程,就象notepad吧,如果你要结束notepad ,它就会弹出窗口,询问你是否要保存文件。这个功能怎么实现啊?
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
把OnClose映射出来就是这个效果了.
|
能力值:
( LV4,RANK:50 )
|
-
-
8 楼
添加WM_CLOSE消息,方法跟添加WM_QUERYENDSESSION一样。
消息框类型是MB_OKCANCEL的话会有确定--取消按钮,点击确定程序退出,取消则不退出,代码如下:
void CInlineHookDlg::OnClose()
{
// TODO: Add your message handler code here and/or call default
if (IDOK==MessageBox("程序退出,是否保存文件?","提示",MB_OKCANCEL))
CDialog::OnClose();
}
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
我知道了。我的主窗口底下又生成了一个子对话框,我的主窗口早就添加了WM_CLOSE消息响应,在只有主窗口没有子对话框弹出的情况下,可以正确响应WM_CLOSE消息,但弹出了子对话框的情况下,如果ctrl+alt+del结束程序,则显示“我的程序没有响应”,怎么办?
|
|
|