CN100561425C - 一种Windows应用程序界面的通用锁定系统及方法 - Google Patents
一种Windows应用程序界面的通用锁定系统及方法 Download PDFInfo
- Publication number
- CN100561425C CN100561425C CNB03115848XA CN03115848A CN100561425C CN 100561425 C CN100561425 C CN 100561425C CN B03115848X A CNB03115848X A CN B03115848XA CN 03115848 A CN03115848 A CN 03115848A CN 100561425 C CN100561425 C CN 100561425C
- Authority
- CN
- China
- Prior art keywords
- interface
- message
- window
- application
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明提供一种Windows应用程序界面的通用锁定系统及方法,该系统包括消息截获模块、消息判别模块、身份认证模块、锁定定时器及应用程序接口;该方法包括以下步骤:截获用户消息;判断当前应用程序的锁定状态,若未被锁定,则发送来自用户的操作消息至应用程序,同时复位锁定定时器;若已锁定,判断当前用户消息是否需要被屏蔽;若需屏蔽,进行用户身份认证;根据身份认证正确或错误对应用程序解锁或保持锁定;若不需屏蔽,则发送消息至应用程序。本发明对发至应用程序的用户消息彻底封锁,从而可以避免非法用户有意或者无意地对该窗口进行的不良操作,不影响其他程序的正常使用,也不影响本程序界面状态的监测。
Description
技术领域
本发明涉及计算机操作系统中关于应用程序的消息处理系统及方法,特别是涉及一种Windows应用程序界面的通用锁定系统及方法。
背景技术
目前,实时运行的应用程序被广泛使用,如果不对程序的界面进行锁定,由于意外情况或者恶意攻击产生的鼠标键盘操作,可能会导致严重的不良后果。例如:用户不小心按下了Windows操作系统中网管程序的“关闭告警铃声”工具钮,则可能导致网络维护人员错误地认为没有任何告警产生,从而延误了网络故障的消除,造成无可挽回的经济损失。为了避免类似情况的出现,对实时运行应用程序的界面进行锁定显得非常重要。
目前锁定界面的方法主要有以下两种:
1、利用Windows操作系统安全策略中的“锁定工作站”功能,锁定运行该应用程序的机器。这样虽然可以阻止程序响应鼠标键盘操作,但无法再对程序界面上的状态进行监视。
2、采取灰化应用程序菜单、工具栏等界面要素的手段,来达到屏蔽鼠标键盘操作的目的。这样做的缺点一是实现起来比较困难,必须针对每个菜单项,每个界面要素相关鼠标键盘操作的方法进行重载或者增加变量,二是对热键的屏蔽也难以实现,三是对于不同的应用程序都需要做大量工作,不能实现通用。
发明内容
本发明的目的是在Windows操作系统的应用程序中嵌入锁定模块,并通过其在应用程序中的任意调用,以实现对应用程序的操作界面的锁定。
为了达到上述目的,本发明提供一种Windows应用程序界面的通用锁定系统,其特征在于该系统包括消息截获模块、消息判别模块,身份认证模块、自动锁定定时器及应用程序接口,其中消息截获模块用来截获用户发往指定应用程序窗口的所有外设消息;消息判别模块用来判断该消息的类型,以及当前程序的锁定状态;身份认证模块用来进行解锁用户的权限确认;锁定定时器用来设定应用程序自动锁定的时间间隔;应用程序接口是应用程序与该系统的控制接口;
本发明还提供了一种Windows应用程序界面的通用锁定方法,通过调用嵌入在应用程序中的锁定程序,实现对应用程序操作界面的锁定,该方法包括以下步骤:
截获当前发往应用程序的用户消息;
判断当前应用程序的锁定状态,
若未被锁定,则发送来自用户的操作消息至应用程序,同时复位锁定定时器;
若已锁定,则判断当前用户消息是否需要被屏蔽;
若需屏蔽,则进行用户身份认证;
根据身份认证正确或错误对应用程序解锁或保持锁定;
若不需屏蔽,则发送消息至应用程序。
本发明提供的方法,可通用于Windows系统中所有的应用程序,只需使用同样的几行代码,可以迅速地完成对所有的应用程序界面锁定功能,其实现过程简单方便,对鼠标键盘消息封锁彻底,不会留下无法屏蔽的操作死角和疏漏,在不影响其他程序的正常使用,及不影响本程序界面状态监测的情况下,避免了非法用户有意或者无意地对该窗口进行的不良操作。
下面将结合实施例,并参照附图进行详细说明,以便对本发明的目的、特征及优点有更深入的理解。
附图说明
图1为本发明功能模块图。
图2为本发明消息处理流程图。
图3为本发明某应用程序与其锁定模块的嵌入关系示意图。
具体实施方式
如图1所示的本发明的通用锁定系统功能模块图,包括消息截获模块101、消息判别模块102,身份认证模块103、自动锁定定时器104及应用程序接口105,其中消息截获模块101用来截获用户发往指定应用程序窗口的所有外设(如鼠标、键盘)消息,使上述的消息能够在到达目标窗口之前进行适当的处理(如本发明所提供的锁定处理);消息判别模块102用来判断该消息的类型,以及当前程序的锁定状态,决定是屏蔽该消息,还是将该消息发送到应用程序;身份认证模块103用来进行解锁用户的权限确认;锁定定时器104用来设定应用程序自动锁定的时间间隔,当指定时间段内没有任何鼠标键盘操作,程序自动锁定;应用程序接口105是应用程序与该系统的控制接口。上述模块101~103一起又称为消息处理模块。
如图2所示,为本发明提供的锁定系统的工作流程:首先由消息截获模块截获了一个发往目标窗口的鼠标或者键盘消息,步骤201,该操作可以用鼠标和键盘钩子函数实现,钩子是系统消息处理机制中的一个切入点,应用程序可以在该点安装一个子程序来监视系统消息的流通情况,同时可以在消息到达目标窗口之前进行适当的处理;判断当前程序是否被锁定,步骤202,如果没有被锁定,则发送该消息到应用程序,步骤211,同时复位程序锁定定时器,步骤212;如果已被锁定,则提取当前消息的类型或者键盘消息的码值,步骤203,判断其是否需要屏蔽,步骤204,如果该消息不需要被屏蔽,则发送该消息到应用程序,步骤212;如果需要屏蔽,则弹出解锁对话框,步骤205,同时启动自动隐藏的锁定定时器,步骤206,要求用户输入解锁用户和密码,步骤207,判断用户输入的密码是否正确,步骤208,如果用户输入了正确的用户和密码,则隐藏解锁对话框,并解除程序的锁定状态,步骤209,由此程序转变为非锁定状态,所有的操作正常执行;如果用户输入了错误的密码,则转至步骤207,提示用户重新输入密码,弹出解锁对话框后一定时间内没有任何操作,则将解锁对话框自动隐藏,程序保持锁定状态,步骤210,此时任何被屏蔽的消息在锁定状态下不能被执行,该流程中关于是否自动锁定程序,自动锁定程序的时间间隔,是否自动隐藏解锁对话框,自动隐藏解锁对话框时间间隔都可以由模块的接口函数来进行设定。
如图3所示,为本发明实施例中,应用程序与界面锁定系统的嵌入关系示意图,其中锁定系统302是嵌入在应用程序301中的,他们是包含与被包含的关系。
下面举一具体实施例来说明本发明的技术方案:
本发明提出的锁定系统可以使用MS Visual C++来实现。步骤1,首先创建一个动态链接库DLL,注意要选择使用共享MFC;步骤2,生成一个导出类Chook;步骤3,在该类中加入接口函数的声明,该声明包括启动模块函数、设置是否锁定窗口函数、设置超级用户名和密码函数、设置密码输入对话框自动隐藏时间间隔函数、设置自动锁定时间间隔函数、设置是否自动隐藏密码输入对话框函数、设置是否自动锁定目标窗口函数等内容;步骤4,加入全局变量,被锁定窗口的句柄、记时器ID、当前窗口是否已经锁定、是否自动锁定目标窗口标记、自动锁定时间间隔(缺省为10分钟)、输入密码对话框、指向钩子Hook本身的指针;步骤5,生成一个身份认证对话框类,该对话框类中包含当前用户名及密码、是否自动隐藏标记、自动隐藏时间间隔、超级用户及密码属性,以及密码验证的方法等,这里需要注意的是,如果设置自动隐藏,则需要获得没有对该窗口进行任何操作的时间长度,在此可以通过设置一个定时器,在对该对话框操作时复位该定时器来实现,对该对话框的操作包括用鼠标点击对话框以及在对话框拥有焦点的时候点击键盘;步骤6,完成接口函数定义,关键的接口函数是步骤3中提到的启动模块函数,在本实施例中有关接口函数包含四个参数:需要被锁定窗口的句柄、当前用户名称、当前用户密码;启动哪些钩子(这里可以指定启动键盘钩子或者鼠标钩子或者二者都启动),该接口函数的执行过程为:判断是否已经启动了指定的钩子;如果已启动,则先停止该钩子;接着判断输入的窗口句柄是否为有效;如果无效则返回错误;如果窗口句柄有效则根据参数启动指定类型的钩子,并设置目标窗口句柄,设置当前用户,设置当前用户密码,之后启动定时器记录程序没有得到任何操作的时间,其他的接口函数分别完成对应属性值的设置;步骤7,编译该程序,生成动态连接库文件;步骤8,把接口文件,动态连接库文件,以及对应的lib文件拷贝到需要进行界面锁定的应用程序目录中,并加入到应用程序中;步骤9,在应用程序的主窗口类中生成锁定系统的一个实例,并在该类的构造函数中启动锁定模块;步骤10,增加菜单项“锁定程序”,并映射为方法OnLock(),在该方法中锁定窗口。如设置输入密码对话框自动隐藏时间间隔为5秒设置自动锁定时间间隔为1分钟,以及设置超级用户名称为“user”,超级用户密码为“******”,超级用户是为了防止万一锁定该应用程序窗口的用户忘记锁定密码而内置的一个接口,供调用该模块的应用程序进行动态修改;用户名和密码在启动该模块时要求用户进行设定的,它的作用是判定解锁用户是否拥有解锁权限。
在本发明中,根据应用程序接口中不同的功能,可将其细分为接口启动子模块、接口停止子模块、锁定窗口接口、超级用户名和密码设置接口、密码输入对话框自动隐藏时间间隔设置接口、自动锁定时间间隔设置接口、是否自动隐藏密码输入对话框设置接口、是否自动锁定目标窗口设置接口,以上的功能实现可以封装在动态连接库中。如果设置了自动锁定目标窗口,并且在自动锁定时间间隔内对目标窗口没有任何键盘鼠标操作,则系统自动锁定目标窗口;如果设置了自动隐藏密码输入对话框,且在密码输入对话框自动隐藏时间间隔内对密码输入对话框没有进行任何键盘鼠标操作,则系统自动隐藏密码输入对话框;目标窗口被锁定后,只有通过输入正确的当前用户名和密码或者正确的超级用户名和密码才能解除锁定。并且在调用该模块的应用程序启动该模块时还要求输入目标窗口的窗口句柄,该句柄Hook的作用是在模块锁定该窗口后可以改变一下窗口的属性或者状态,做一个锁定标志,比如可以在窗口标题栏里加上“锁定”两个字。
本方法可以通过在应用程序的工程中加入锁定模块及其接口文件,在应用程序的主窗口类中生成锁定模块的一个实例,并在适当的时候启动该实例即可,适当的时候可以是主窗口初始化结束的任何时候,一般可以在程序菜单中加入锁定界面的菜单项,并在该菜单项对应的方法中启动界面锁定模块。启动界面锁定模块之后程序界面就会完全被锁定。锁定模块不会影响本机其他程序的正常运行,还可以实时监视本程序的运行状态。如果需要高级应用,则可以在启动模块后调用模块的接口函数对其高级属性进行设置。值得一提的是对所有的应用程序使用同样的几行代码即可实现对程序界面的锁定。该方法也可以用于创建独立的应用程序,对已经发布的其他应用程序进行锁定,此时需要注意的是该模块中所有的变量必须放置在共享数据段中,而且需要对桌面上所有的窗口进行枚举,从而确定需要被锁定的窗口。
本发明通过在应用程序的工程中加入锁定模块及其接口文件来实现,在应用程序的主窗口类中生成锁定模块的一个实例,并在适当的时候启动该实例即可,适当的时候可以是主窗口初始化结束的任何时候,一般可以在程序菜单中加入锁定界面的菜单项,并在该菜单项对应的方法中启动界面锁定模块。启动界面锁定模块之后程序界面就会完全被锁定。锁定模块不会影响本机其他程序的正常运行,还可以实时监视本程序的运行状态。如果需要高级应用,则可以在启动模块后调用模块的接口函数对其高级属性进行设置。值得一提的是对所有的应用程序使用同样的几行代码即可实现对程序界面的锁定。该方法也可以用于创建独立的应用程序,对已经发布的其他应用程序进行锁定,此时需要注意的是该模块中所有的变量必须放置在共享数据段中,而且需要对桌面上所有的窗口进行枚举从而确定需要被锁定的窗口。
以上所述,仅是本发明的较佳实施方式,不应被视为是对本发明范围的限制,本发明要求保护的范围以权利要求为准,凡熟悉此领域技艺的人士,依据本发明所揭露的技术内容,可轻易思及的等效变化,均应落入本发明的保护范围。
Claims (10)
1.一种Windows应用程序界面的通用锁定系统,其特征在于该系统包括消息截获模块、消息判别模块,身份认证模块、锁定定时器及应用程序接口,其中消息截获模块用来截获用户发往指定应用程序窗口的所有外设消息;消息判别模块用来判断该外设消息的类型,以及当前应用程序的锁定状态;身份认证模块用来在当前应用程序锁定状态时,进行解锁用户的权限确认,以确认是否执行所述外设消息;锁定定时器用来设定应用程序自动锁定的时间间隔;应用程序接口是应用程序与该系统的控制接口。
2.如权利要求1所述的Windows应用程序界面的通用锁定系统,其中所述应用程序接口还可细分为锁定系统接口启动子模块、锁定系统接口停止子模块、锁定窗口接口、锁定系统停止子模块、目标窗口设置接口、当前用户名和密码设置接口、超级用户名和密码设置接口、密码输入对话框自动隐藏时间间隔设置接口、自动锁定时间间隔设置接口、是否自动隐藏密码输入对话框设置接口、是否自动锁定目标窗口设置接口,如果设置了自动锁定目标窗口,并且在自动锁定时间间隔内对目标窗口没有任何键盘鼠标操作,则系统自动锁定目标窗口;如果设置了自动隐藏密码输入对话框,且在密码输入对话框自动隐藏时间间隔内对密码输入对话框没有进行任何键盘鼠标操作,则系统自动隐藏密码输入对话框;目标窗口被锁定后,只有通过输入正确的当前用户名和密码或者正确的超级用户名和密码才能解除锁定。
3.如权利要求1所述的Windows应用程序界面的通用锁定系统,其中所述用户外设消息可以是用户通过鼠标或键盘输入的消息。
4.如权利要求1所述的Windows应用程序界面的通用锁定系统,其中锁定定时器能够自动锁定目标窗口。
5.如权利要求1所述的Windows应用程序界面的通用锁定系统,嵌入于应用程序中,该系统与该应用程序是包含与被包含的关系。
6.一种Windows应用程序界面的通用锁定方法,包括以下步骤:
截获当前发往应用程序的用户消息;
判断当前应用程序的锁定状态,
若未被锁定,则发送来自用户的操作消息至应用程序,同时复位锁定定时器;
若已锁定,则判断当前用户消息是否需要被屏蔽;
若需屏蔽,则进行用户身份认证;
根据身份认证正确或错误对应用程序解锁或保持锁定;
若不需屏蔽,则发送消息至应用程序。
7.如权利要求6所述的Windows应用程序界面的通用锁定方法,其中所述截获来自用户通过外设输入的消息的步骤,可通过调用钩子函数来实现。
8.如权利要求6所述的Windows应用程序界面的通用锁定方法,其中所述进行身份认证的步骤,还包括生成一个身份认证对话框类,该对话框用于输入用户名和密码,并且对输入的用户名和密码进行验证。
9.如权利要求6所述的Windows应用程序界面的通用锁定方法,还包括在系统中还可内置超级用户接口,供调用该模块的应用程序进行动态修改,以防止锁定该应用程序窗口的用户因为忘记了锁定密码,而无法解除先前所作的锁定操作。
10.如权利要求6所述的Windows应用程序界面的通用锁定方法,也可以用于创建独立的应用程序,对已经发布的其他应用程序进行锁定。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB03115848XA CN100561425C (zh) | 2003-03-12 | 2003-03-12 | 一种Windows应用程序界面的通用锁定系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB03115848XA CN100561425C (zh) | 2003-03-12 | 2003-03-12 | 一种Windows应用程序界面的通用锁定系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1553316A CN1553316A (zh) | 2004-12-08 |
CN100561425C true CN100561425C (zh) | 2009-11-18 |
Family
ID=34320251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB03115848XA Expired - Fee Related CN100561425C (zh) | 2003-03-12 | 2003-03-12 | 一种Windows应用程序界面的通用锁定系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100561425C (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102842007A (zh) * | 2012-07-16 | 2012-12-26 | 腾讯科技(深圳)有限公司 | 移动终端应用程序的访问控制方法和系统 |
CN103310135A (zh) * | 2012-03-13 | 2013-09-18 | 腾讯科技(深圳)有限公司 | 一种屏蔽应用权限的方法和移动终端 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101226575B (zh) * | 2008-01-28 | 2011-04-20 | 中兴通讯股份有限公司 | 应用程序的锁定方法 |
CA2811839C (en) * | 2010-09-24 | 2017-09-05 | Research In Motion Limited | Method and apparatus for differentiated access control |
CN102279912A (zh) * | 2011-06-03 | 2011-12-14 | 奇智软件(北京)有限公司 | 客户端程序监控方法、装置及客户端 |
CN103077342A (zh) * | 2011-10-25 | 2013-05-01 | 成都谛听科技有限公司 | 图形化随机密码输入方法 |
CN102542202A (zh) * | 2011-12-27 | 2012-07-04 | 长春希达电子技术有限公司 | 实时锁屏系统 |
CN102541289A (zh) * | 2012-01-10 | 2012-07-04 | 苏州三诺信息科技有限公司 | 通用型键盘锁功能的实现方法 |
CN102981717B (zh) * | 2012-11-12 | 2016-01-13 | 东莞宇龙通信科技有限公司 | 终端和触摸按键锁定方法 |
CN107292137B (zh) * | 2016-03-31 | 2020-10-16 | 阿里巴巴集团控股有限公司 | 一种待解锁对象的确定方法及装置 |
CN106022122B (zh) * | 2016-05-31 | 2018-12-14 | 北京金山安全软件有限公司 | 一种信息处理方法及装置 |
CN107679377A (zh) * | 2017-09-30 | 2018-02-09 | 广东欧珀移动通信有限公司 | 应用界面切换方法、装置、存储介质及电子设备 |
CN108563933A (zh) * | 2018-04-19 | 2018-09-21 | Oppo广东移动通信有限公司 | 应用程序的控制方法、装置、存储介质及移动终端 |
CN113687925B (zh) * | 2021-07-22 | 2023-09-29 | 成都鲁易科技有限公司 | 设备操作处理方法及装置、存储介质、计算机设备 |
-
2003
- 2003-03-12 CN CNB03115848XA patent/CN100561425C/zh not_active Expired - Fee Related
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103310135A (zh) * | 2012-03-13 | 2013-09-18 | 腾讯科技(深圳)有限公司 | 一种屏蔽应用权限的方法和移动终端 |
CN103310135B (zh) * | 2012-03-13 | 2015-10-28 | 腾讯科技(深圳)有限公司 | 一种屏蔽应用权限的方法和移动终端 |
CN102842007A (zh) * | 2012-07-16 | 2012-12-26 | 腾讯科技(深圳)有限公司 | 移动终端应用程序的访问控制方法和系统 |
CN102842007B (zh) * | 2012-07-16 | 2015-03-11 | 腾讯科技(深圳)有限公司 | 移动终端应用程序的访问控制方法和系统 |
US9141774B2 (en) | 2012-07-16 | 2015-09-22 | Tencent Technology (Shenzhen) Company Limited | Method and system for controlling access to applications on mobile terminal |
US9355230B2 (en) | 2012-07-16 | 2016-05-31 | Tencent Technology (Shenzhen) Company Limited | Method and system for controlling access to applications on mobile terminal |
Also Published As
Publication number | Publication date |
---|---|
CN1553316A (zh) | 2004-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100561425C (zh) | 一种Windows应用程序界面的通用锁定系统及方法 | |
US20070300077A1 (en) | Method and apparatus for biometric verification of secondary authentications | |
EP2474140B1 (en) | Checking a configuration modification for an ied | |
US20040103296A1 (en) | Skeptical system | |
Daud | Secure software development model: A guide for secure software life cycle | |
Serhane et al. | PLC code-level vulnerabilities | |
CN112417391B (zh) | 信息数据安全处理方法、装置、设备及存储介质 | |
WO2017210240A1 (en) | System and method for securely changing network configuration settings to multiplexers in an industrial control system | |
US20170264631A1 (en) | Control device for a network and vulnerability scanner | |
JP2010536202A (ja) | 入力データのセキュリティ処理方法と装置 | |
CN112383535B (zh) | 哈希传递攻击行为的检测方法、装置和计算机设备 | |
US8978150B1 (en) | Data recovery service with automated identification and response to compromised user credentials | |
JP2013109608A (ja) | プラント監視制御端末装置及びプラント監視制御方法 | |
CN107423655B (zh) | 一种设置码加密方法及终端 | |
KR20070024100A (ko) | 이미지 키 입력을 통한 네트워크 보안 시스템 및 그 방법 | |
US20100265039A1 (en) | Systems and Methods for Securing Control Systems | |
CN115730339A (zh) | 一种基于ide源码保护插件代码防泄密方法及系统 | |
CN106447835A (zh) | 一种门锁声波控制系统及方法 | |
JP2006277063A (ja) | ハッキング防御装置及びハッキング防御プログラム | |
Tellabi et al. | Overview of Authentication and Access Controls for I&C systems | |
US9396314B2 (en) | Method for remotely locking/unlocking a machine | |
KR101683697B1 (ko) | 이중보안기능이 구비된 홍채인식시스템 및 그 제어방법 | |
Singla et al. | Intelligent security system for HMI in SCADA applications | |
CN112261008A (zh) | 一种基于临时令牌的鉴权方法、客户端、和服务器 | |
CN108986353A (zh) | 一种pos终端解锁方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20180703 Address after: California, USA Patentee after: Global innovation polymerization LLC Address before: 518057 Department of law, Zhongxing building, South hi tech Industrial Park, Nanshan District hi tech Industrial Park, Guangdong, Shenzhen Patentee before: ZTE Corp. |
|
TR01 | Transfer of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20091118 |
|
CF01 | Termination of patent right due to non-payment of annual fee |