VC语言

本类阅读TOP10

·VC++ 学习笔记(二)
·用Visual C++打造IE浏览器(1)
·每个开发人员现在应该下载的十种必备工具
·教你用VC6做QQ对对碰外挂程序
·Netmsg 局域网聊天程序
·Windows消息大全
·VC++下使用ADO编写数据库程序
·VC++学习笔记(四)
·非法探取密码的原理及其防范
·怎样在VC++中访问、修改注册表

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
动态禁用/启用Win2000下的Ctrl+Alt+Del组合键(终结版)【原创】

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

动态禁用/启用Window 2000下的Ctrl+Alt+Delete组合键(终结版)

作者: 湖北 李桂生 [email protected]
鸣谢: 1:jiangsheng 在Windows2000中动态禁用/启用Ctrl-Alt-Delete
  2:Robert Kuster Three Ways to Inject Your Code into Another Process

 

图片如下:

使用方法:

1:

包含C++类CCADMgr头文件,如:#include "CADMgr.h"

2:

定义变量如:CCADMgr m_cadMgr;
3: 设置Ctrl+Alt+Del消息通知窗口,如:m_cadMgr.SetTargetWnd(m_hWnd);
4: 禁用或启用,如:m_cadMgr.DisableCAD(m_bDisabled);
5:

响应消息:

声明函数:afx_msg void OnHotKey(WPARAM wParam, LPARAM lParam);

消息映射:ON_MESSAGE(WM_HOTKEY, OnHotKey)

函数实现:
void CTrapCADDlg::OnHotKey(WPARAM wParam, LPARAM lParam)
{
WORD wKey = HIWORD(lParam);
WORD wModifier = LOWORD(lParam);

BOOL bAltDown = ((wModifier & VK_MENU) != 0 ? TRUE : FALSE);
BOOL bCtrlDown = ((wModifier & VK_CONTROL) != 0 ? TRUE : FALSE);

//按下Ctrl + Alt + Del组合键
if(bCtrlDown && bAltDown && wKey == VK_DELETE)
AfxMessageBox("对不起, Ctrl+Alt+Delete组合键已经被禁用了!", MB_OK|MB_ICONERROR);
}

程序先在注入一段线程在winlogon.exe中,替换winlogon桌面SAS window的窗口处理过程为自己的窗口处理过程,在有Ctrl+Alt+Del组合键时向自己指定的窗口发送消息,达到截获Ctrl+Alt+Del组合键的目的,在程序退出时替换回原有的窗口处理过程,谢谢!




相关文章

相关软件