- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Windows平台实验室登记控制系统探索与研究
基于Windows平台实验室登记控制系统探索与研究
[摘 要]在智慧地球、智慧城市的大发展背景下,智慧校园、信息化校园也在逐步发展起来,信息化要求越来越高。就当前需求,本团队就本院实验室登记管理方面作深入研究,并取得一定成果。本文将针对上述系统的技术实现方式作探索讨论,主要包括技术涉及到操作系统、B/S架构的信息系统开发、以及网络数据传输等,综合运用多项技术做方案整合,以便更好的服务于本院实验室预约登记模式的改革创新。
[关键词]信息化 实验室管理 Hook技术 B/S Socket通讯
中图分类号:TG659 文献标识码:A 文章编号:1009-914X(2015)01-0289-01
实验室管理是各大学实验室的主要日常管理工作之一,涉及到实验室日常的预约登记,使用记录,日常维护,过程跟踪等信息管理诸多方面,随着实验室应用的不断改革,实验室的日常管理工作及保存管理日趋繁重、复杂。迫切需要研制开发一款功能实用,操作简单,具有人性化的实验室登记管理系统。
通过分析实现实验室登记控制系统所需要的基础技术及原理,以VS2012作为开发工具,在Win32平台下实现一套实验室登记管理系统。
在客户端实现技术上,主要解决两个方面的技术关键点,一个是设置为全屏模式,通过这种方式防止用户访问其他软件,另一个是摆放账号验证的控件实现用户与客户端的交互。本设计使用C++语言,MFC类库,将系统界面设计为两个对话框,分别为背景对话框和登录对话框,背景对话框用于遮盖屏幕,通过将该窗口设置为全屏模式并置于顶级窗口使用户无法对其他进程进行操作;登录对话框则用于摆放各种控件,实现用户登录功能,并为其他扩展功能留下了空间。
定制化锁屏技术,是本系统的难点之一。所谓锁屏,是指实现在windows平台下,对屏幕、键盘鼠标进行限制,使用户无法对客户端以外的所有窗口(包括桌面)进行操作,也需要屏蔽各种快捷键及系统键。本模块的设计牵涉到对windows内核的操作,是本系统的最大技术难点。在这一模块中,需要使用的技术包括:生成动态链接库(DLL),HOOK编程,远程线程,windows权限管理等相关技术。
在锁屏技术模块,主要分为两部分,其一为基于Windows钩子(Hook)技术的键盘一般消息屏蔽,其二为基于远程线程技术的键盘系统键屏蔽。
1.基于Windows钩子(Hook)技术的键盘一般消息屏蔽:
本系统笔者编写了DLL文件,用于实现HOOK技术,安装键盘钩子的windows函数为:
HHOOK SetWindowsHookEx( int idHook,
HOOKPROC lpfn,
HINSTANCE hMod,
DWORD dwThreadId
);
idHook参数设置为WH_KEYBOARD_LL,表示安装底层键盘钩子,lpfn为回调函数入口地址,当应用程序从消息队列中取出键盘消息时,会先调用lpfn指定的回调函数,因此,我们只需通过编写该回调函数,即可对键盘消息进行部分屏蔽。
2.远程线程技术的键盘系统键屏蔽:
对于系统键,如ctrl+alt+del,win+u,win+l等,由于这些热键为系统键,产生的消息不通过消息队列而是直接投递到操作系统当中,因此无法通过HOOK的方式对该消息进行捕捉。经过研究探索发现,这些热键是在winlogon.exe进程中声明并执行的,所以可行的方式是通过远程线程的方法,将一个线程注入到winlogon.exe进程中,并用该线程设置ctrl+alt+del,win+u,win+l 这三个热键,以达到屏蔽这三个系统键的效果。因为进程间存在着进程边界,即一个进程不能访问另一个进程的内存空间,系统需要用到远程注入DLL的方式,让winlogon.exe进程调用该DLL,而要访问winlogon.exe,还需要拥有比winlogon.exe更高的安全权限才能知行。因此,必须运行一个当前的程序,并以系统权限运行另一个进程,并用另一个进程将一个线程注入winlogon.exe进程,再通过该线程注销ctrl+alt+del,win+u,win+l 这三个热键,从而实现锁定效果。
在网络通信方面,采用了非阻塞模式进行Socket编程,并基于消息的异步套接字编程技术,基于UDP/IP协议,解决了客户端未接收到返回命令时的卡顿现象,并大大的提高了应用程序的性能。非阻塞模式,需要使用到套接字库2.2版本中的一些函数。因此,需对套接字库的加载进行修改,加载成2.2版本的套接字库。再通过修改账号验证确定按钮的响应程序,并发送验证信息。在接收到服务器端发来的命令时并不立即响应,而是在对话框初始化时,使用WSAAsyncSelect将网络读
文档评论(0)