yyyhh
驱动牛犊
驱动牛犊
  • 注册日期2001-05-23
  • 最后登录2002-07-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3287回复:15

小弟初来宝地,还望照顾一二:在2000下锁键盘和鼠标用HOOK是否不行?据说要用到驱动程序。不知可有例程?谢

楼主#
更多 发布于:2001-05-23 11:39
RT
云中漫步者
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
沙发#
发布于:2001-05-23 12:53
hook可以实现的,但用driver效果更好些。
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
板凳#
发布于:2001-05-23 15:42
记得本论坛在被黑以前有一源码,你可以在论坛的新闻处下载以前的离线版。
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
无心化语
禁止发言
禁止发言
  • 注册日期2001-03-23
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分-103分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2001-05-24 09:56
用户被禁言,该主题自动屏蔽!
Rick
驱动牛犊
驱动牛犊
  • 注册日期2001-04-24
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2001-05-24 10:19
可以利用Keyboard Controller的功能进行键盘(PS/2mouse)的加锁。
  
  键盘使用两个端口:64h--命令端口,60h--数据端口。向command port丢A5h,然后向data port丢要设置的密码,长度不能超过八个,以0结尾,且是scancode而不是ASCII码。然后向command port丢A6h将Password Enable即可。键盘加密后就不可使用,除非输入密码。输入密码后键盘自动解锁。
  可以写个Driver来完成向64h,60h读写数据的功能。
无心化语
禁止发言
禁止发言
  • 注册日期2001-03-23
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分-103分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2001-05-24 16:34
用户被禁言,该主题自动屏蔽!
Rick
驱动牛犊
驱动牛犊
  • 注册日期2001-04-24
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2001-05-24 17:43
假设密码是12345,直接按12345键即可,输入别的键键盘仍然被锁!
无心化语
禁止发言
禁止发言
  • 注册日期2001-03-23
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分-103分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
7楼#
发布于:2001-05-24 19:14
用户被禁言,该主题自动屏蔽!
Rick
驱动牛犊
驱动牛犊
  • 注册日期2001-04-24
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2001-05-25 09:03
不论是否上锁,当你按键时,首先由Keyboard Controller得到响应,Keyboard Conrtroller会扫描键盘matrix得到scancode.如果输入的不是密码的话,Keyboard不会被解锁,即scancode不会送到host(system).
另键盘产生的scancode通过60h送给system,而不是通过60h送给键盘。

再不明白,我也没的说的了!
creator
驱动牛犊
驱动牛犊
  • 注册日期2001-05-16
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2001-05-26 18:40
在2000下锁键盘和鼠标使用全局hook完全就可以实现,
至于源码吗,请到网上艘一下,很好找的。

恰同学少年,风华正茂,指点江山,激扬文字。
chenjh
驱动牛犊
驱动牛犊
  • 注册日期2001-05-27
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2001-05-27 21:58
以下针对win2000
hook可以锁住除了ctrl+alt+del以外的所有键盘消息
如果非要锁ctrl+alt+del,可以改注册表,有点危险
win98更容易
无心化语
禁止发言
禁止发言
  • 注册日期2001-03-23
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分-103分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
11楼#
发布于:2001-05-28 08:00
用户被禁言,该主题自动屏蔽!
Rick
驱动牛犊
驱动牛犊
  • 注册日期2001-04-24
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2001-05-28 08:03
It's a standard command of Keyboard Controller Interface. You can try it with an app.
[Rick 编辑于 2001-05-28 08:06]
yyyhh
驱动牛犊
驱动牛犊
  • 注册日期2001-05-23
  • 最后登录2002-07-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2001-05-29 10:12
Rick,我没有找到你说的编程接口呀,能否贴出几个函数,以供查找。
另外,各位我已经着手编写驱动。但以前没有编过,我有几个疑问。
我想是编一个FILTER以截住C+A+D,但是我想通过一个应用程序来控制截还是不截(有时候不用),那么我的应用程序怎样跟驱动程序通信呢?“发消息”这种机制有吗?
还望各位赐教!小弟谢啦!
云中漫步者
sam1111
驱动牛犊
驱动牛犊
  • 注册日期2001-05-24
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2001-05-29 10:45
要在Win2000下锁住C+A+D,好像只能通过编写WDM来实现!
爱我,就给我
Rick
驱动牛犊
驱动牛犊
  • 注册日期2001-04-24
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2001-05-29 11:42
很少书籍介绍这些Command,DDK上不可能有的。怎么使用上面已经写的很清楚了,你写个dos程序测试一下即可。以前写了一个,但不小心硬盘被format了。
另外需要注意的是:
1。在向60h/64h写数据之前,需要先从64h port读缓冲区状态,看是否可以写,设读回的数据为A,通过测试A.1为0时才可以向端口写数据。读60h时要测试A.0为1才可以从60h读数据(一般是scancode)
2。读写数据时要把键盘中断禁止掉。完成之后在Enable.

另,据我所知,APP是无法通过PostMessage的方式通知Driver的,可以使用Ioctl的方式,参考DDK.
游客

返回顶部