免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3651 | 回复: 0
打印 上一主题 下一主题

API----如何锁定键盘和鼠标 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-28 15:29 |只看该作者 |倒序浏览
在工业自动化领域中,经常遇到要求锁定键盘鼠标的要求,防止无关人员误操作造成事故.

锁定鼠标比较简单,有多种方法:

一:利用API函数ShowCursor.

   对于每个WINDOWS窗口,系统都负责维护一个鼠标时针计数器,当这个计数器值小于0时,隐藏鼠标时针,针对当前窗口,对其他窗口不起作用.这不是一个非常好的方法,因为它只不显示鼠标指针了,但还是起作用,如果有人胡乱按下鼠标,就可能触发鼠标事件.

Public Declare Function ShowCursor Lib "user32" Alias "ShowCursor" (ByVal bShow As Long) As Long


返回值是当前鼠标指针计数器的值,bShow=0是HIDE,bShow!=0,Display.

二:利用ClipCursor API

   这个API函数是全局的,它可以把鼠标指针限定在一个特定区域里,以像素点为单位.

   Public Declare Function ClipCursor Lib "user32" Alias "ClipCursor" (lpRect As Any) As Long
   ClipCursor(0,0,0,0); 则鼠标指针固定在左上角点.

三:利用BlockInput API,它封锁了全部的鼠标键盘操作.

   它的问题是如果同时按下,ALT+CTRL_DEL,则自动解除锁定

四:利用EnableWindow API,可以禁止鼠标键盘对窗口的操作,只禁止自己的窗口.

Public Declare Function EnableWindow Lib "user32" Alias "EnableWindow" (ByVal hwnd As Long, ByVal fEnable As Long) As Long

这个函数需要前面板的窗口句柄,我的一篇日志专门提到如何获得窗口句柄.

五:一般的主板上都有键盘锁定连接器,只要引出连接一个按钮(工业控制计算机一般都引出),就可以彻底禁止键盘的操作,加上前面的鼠标禁止操作,就可以完全禁止非法用户操控计算机了.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP