博客首页 | 排行榜 |

csxcs366的博客--LABVIEW CVI

http://labview.weebly.com/ 群:80754347 群:78561268 群:37591940

个人档案
博文分类
API----如何锁定键盘和鼠标  2008-04-29 20:42

在工业自动化领域中,经常遇到要求锁定键盘鼠标的要求,防止无关人员误操作造成事故.

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

一:利用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

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

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

六:看过介绍,通过修改注册表可以软件禁止ALT_CTRL_DEL,我没实验过,不知道是否可以.

类别:API、DLL、CIN、NET |
上一篇:labview深入探索-----内存管理和缓存重用 | 下一篇:同步控制技术----栈与队列
以下网友评论只代表其个人观点,不代表本网站的观点或立场