VC6.0下实现屏蔽键盘按键

 最近在搞键盘消息的东西,看了一篇文章,觉得不错,拿来跟大家一块分享下

 

1 问题的引入

随着计算机的广泛应用,计算机软件得到了长远发展。在软件开发过程中,希望产品独占系统资源,或者希望规范用

户行为,例如不希望用户通过Alt + Tab 组合键切换到其他应用程序或者通过Win 键弹出开始菜单。游戏娱乐也已慢慢

成为人们生活中的一部分,其中有些软件是在全屏模式下运行,这时误按Win 键或Alt + Tab 时会造成麻烦。在工程测

试时,有些时候也需要屏蔽部分按键,以减少误操作。然而诸如Win 键、Alt + Tab 组合键、Alt + Esc 组合键等的按

键响应属于系统级的,不能简单地通过重载消息处理函数的方法来对其进行屏蔽。那么如何实现系统范围内屏蔽这些

按键呢?在此介绍了在VC6.0 环境下,通过HOOK (钩子) 技术实现Window NT 及以上系统屏蔽键盘按键的方法。

2 HOOK 及相关API

2.1 HOOK

  HOOK 技术即钩子技术。简单地说,钩子是一种通过替换系统提供的标准接口来截获特定的事件(消息),最终达

到改变或增强系统默认行为目的的技术。钩子通过钩子过程实现需求,钩子过程实际上是一个处理消息的程序段(函

数),通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦

即钩子过程先得到控制权。这时钩子过程既可以加工处理(改变) 该消息,也可以不作处理而继续传递该消息,还

可以强制结束该消息的传递。

  每一个HOOK 都有一个与之相关联的指针列表,称之为钩子链表,由系统来维护。

  钩子分为本地钩子(LOCAL HOOK) 和远程钩子(REMOTEHOOK),又称局部钩子和全局钩子。LOCALHOOK

是指程序HOOK 的是本程序中的线程。REMOTE HOOK 有

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值