动态禁用/启用Win2000下的Ctrl+Alt+Del组合键(终结版)【原创】

王朝vc·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

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

作者:

湖北 李桂生 ligs2001@163.com

鸣谢:

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组合键的目的,在程序退出时替换回原有的窗口处理过程,谢谢!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航