论文部分内容阅读
[摘 要]在智慧地球、智慧城市的大发展背景下,智慧校园、信息化校園也在逐步发展起来,信息化要求越来越高。就当前需求,本团队就本院实验室登记管理方面作深入研究,并取得一定成果。本文将针对上述系统的技术实现方式作探索讨论,主要包括技术涉及到操作系统、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将网络读取事件与自定义消息UM_SOCK进行绑定。当应用程序接收到从网络中所读取的事件时,调用该消息的响应函数进行处理,并编写消息响应函数。在响应函数中,接收服务器发送过来的数据并解析出命令,根据命令执行响应的操作。
此外,在系统还提供一套B/S结构的信息管理系统。管理服务器端使用java语言实现,基于当前主流的J2EE平台技术,结合SSH企业级开发框架进行实现。数据库使用MYSQL,网页采用HTML5增强交互性,并嵌入JAVASCRIPT等脚本语言。通过Struts进行业务控制和处理、Spring进行依赖注入和Hibernate进行数据库操作。实现计算机实验管理系统,实现计算机实验室的网上申请以及计算机实验室的管理,简化本学院的计算机实验室的申请流程及管理工作,使得师生的工作效率提高。
系统初步已完成基本功能,在实验室日常的预约登记,使用记录,日常维护,过程跟踪已进入试用阶段,并随实验室日常管理需求的变化而做相应更新。但在管理模式及运行情况上还需加强改进,如加入过程跟踪管理,以及对开放前开放后效果进行量化评估统计等,都可从中获取到非常有价值的信息,更好地服务于学院整体发展需要。
[关键词]信息化 实验室管理 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将网络读取事件与自定义消息UM_SOCK进行绑定。当应用程序接收到从网络中所读取的事件时,调用该消息的响应函数进行处理,并编写消息响应函数。在响应函数中,接收服务器发送过来的数据并解析出命令,根据命令执行响应的操作。
此外,在系统还提供一套B/S结构的信息管理系统。管理服务器端使用java语言实现,基于当前主流的J2EE平台技术,结合SSH企业级开发框架进行实现。数据库使用MYSQL,网页采用HTML5增强交互性,并嵌入JAVASCRIPT等脚本语言。通过Struts进行业务控制和处理、Spring进行依赖注入和Hibernate进行数据库操作。实现计算机实验管理系统,实现计算机实验室的网上申请以及计算机实验室的管理,简化本学院的计算机实验室的申请流程及管理工作,使得师生的工作效率提高。
系统初步已完成基本功能,在实验室日常的预约登记,使用记录,日常维护,过程跟踪已进入试用阶段,并随实验室日常管理需求的变化而做相应更新。但在管理模式及运行情况上还需加强改进,如加入过程跟踪管理,以及对开放前开放后效果进行量化评估统计等,都可从中获取到非常有价值的信息,更好地服务于学院整体发展需要。