DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1204|回复: 0
打印 上一主题 下一主题

[待整理] 屏幕锁定系统的设计与实现

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-13 12:30:42 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
0 引 言

随着计算机技术和网络通信技术的不断发展,计算机的应用领域也在不断扩大。目前,计算机早已成功进入了学校、公司、政府部门乃至许多家庭,它在人们的工作生活中扮演着越来越重要的角色。面对一个拥有一定规模计算机的应用场所,计算机的集中统一管理以及高效安全使用问题便成了日常管理与维护过程中的当务之急。因此人们对于能够实现实时监督、实时记录用户违规行为的监控性工具软件的需求也越来越迫切。为了对人们使用计算机的行为进行控制,防止他们做一些与工作学习无关或有损计算机安全的事情,实现实时监督及事后日志记录分析,很有必要开发这样一种监控性软件,即“屏幕锁定系统”。该软件可监控、记录、控制局域网内其他计算机的使用行为,能够有效地提高管理员对局域网的监控管理能力,实现计算机的高效合理使用。

1 功能描述

屏幕锁定系统是一种可以控制局域网主机行为的监控性管理软件。其功能描述如下:当客户端触发了管理员所指定的“禁止进程”后,客户端的计算机将会被锁定,只有等待管理员解锁后方能使用计算机。即使客户端关机后重启,若继续尝试一些特殊的应用程序,则机器仍然会被锁定。一旦机器被锁定,这台计算机就会向管理控制台发送这台机器的IP地址、主机名、触发进程的时间、触发的禁止进程名等相关信息,达到管理员事后跟踪一些违规操作的目的。管理员也可设置“关闭锁定”功能,这样客户端就可随意支配计算机。为了实现其监控并锁定的任务,系统还应能抵御恶意用户的攻击,如删除客户端软件等。

2 系统设计与实现

根据系统的功能描述,程序分为两大部分:服务器端程序和客户端程序。服务器端程序的功能包括设置解锁密码,设置禁止进程,获得监控信息,设置关闭锁定,制作任务栏图标等。客户端程序的功能包括接收解锁密码及禁止进程,进程查找匹配,锁定屏幕,防止恶意删除等。屏幕锁定系统的功能结构,如图1所示。


2.1 服务器端实现

服务器端软件主要负责对客户端进行控制、管理及查看监控信息等。服务器端的主界面如图2所示。


2.2 客户端实现

当客户端触发了服务器端指定的禁止进程后,其屏幕就会被锁定。锁定后的界面如图3所示。一旦机器被锁定,客户端就会向服务器端传递诸如“主机名、IP地址、触发时间、触发的禁止进程”等信息,并且只有请求管理员解锁,方能继续使用计算机。


3 关键技术

3.1 WinSoek通信

客户端与服务器端的正常通信,是屏幕锁定系统赖以存在的基础。该系统借助于WinSock实现。VB中提供了WinSock控件。WinSoek控件解决了以往应用VB编程时应用程序之间无法实现点对点通信的难题。WinSock使用的TCP协议和UDP协议,允许建立并保持到远程计算机上的连接,且可以在连接结束之前实时进行数据交换。用户仅通过设置属性并借助事件处理就能够轻而易举地连接到一个远程计算机上,而且只用两个命令就可以实现数据交换。

在传送数据时,需要先设定客户机的LocalPort属性,服务器则只需要把RemoteHost属性设定为机器所在网段的广播地址,并设定与客户机 LocalPott属性相同的端口地址,借助SendData方法开始发送消息。客户机则在GetData事件中通过DataArrival事件分离出发送的信息。

3.2 进程控制机制

进程控制机制实现客户端的进程查找及匹配的过程。进程控制是指查找当前系统正在运行的所有进程,并比较其与禁止进程列表,若匹配成功则杀掉正在运行的禁止进程。实现过程为:调用系统API函数Create-Toolhelp32Snapshot查找客户机正在运行的进程,并使用时钟实时刷新,将其记录到下拉框list1中;从禁止进程文件中读取进程并记录到下拉框list2中;使用两个for循环比较list1和list2中进程是否相同,如果相同,就杀掉正在运行的禁止进程,并调用屏幕锁定窗体。实现流程如图4所示。


3.3 屏幕锁定机制

屏幕锁定机制实现客户端触发了禁止进程后的屏幕锁定功能。屏幕锁定的过程包含以下任务:屏蔽系统热键,使锁定窗体处于最上方,锁定时隐藏任务条,解锁后显示任务条等过程。屏幕锁定机制的主要理论依据是挂钩API技术(HookAPI)。钩子 (Hook)是Windows消息处理机制中的一个监视点,应用程序可以在这里安装一个子程序(钩子函数),以监视指定窗口某种类型的消息,所监视的窗口可以是其他进程创建的。当消息到达后,在目标窗口处理函数处理之前,钩子机制允许应用程序截获它进行处理。而HookAPI就是指截获特定的进程或系统对某个API函数的调用,使得API的执行流程转向指定的代码。钩子的安装与卸载是通过SetWindow-sHookEx函数,以动态链接库的方式安装到系统中的。

屏幕锁定的实现过程为:调用API函数SetWin-dowsHookExA和LowLevelKeyboardProc可以屏蔽热键;调用函数 SetWindowPos(HWND hWnd,HWND hWndlnsertAfter,int x,int y,int cx,int cy,UINT uFlags),并为其赋予不同的实参,就可实现窗体处于最上方、隐藏或显示任务条的功能。实现流程如图5所示。


4 系统特点

该系统的特点体现为以下几点:

(1)不同于单机版的的屏幕锁定系统,本系统适用于在局域网中使用,它首次运行后即可开机自动运行,实时监控;
(2)服务器端和客户端均可以灵活查找自己所在的机器网段,并通过设置相应端口实现一对多通信,不会因机器网段的变化而修改程序,具有很强的自适应能力;
(3)服务器端解锁密码的设置非常灵活,不必清楚上次的密码,很适合于多个管理员的操作;
(4)“禁止进程”的设定非常方便,有利于不同层次人员的使用;
(5)服务器端解除监控的设置,使客户端能灵活支配计算机,符合人性化管理方案;
(6)客户端软件具有很强的自抵御能力,能抵挡恶意用户的强制删除。

5 结 语

计算机在人们的工作生活中扮演着越来越重要的角色,计算机的高效率使用已成了日常管理中亟待解决的问题。这里详细论述了屏幕锁定系统的设计与实现。通过此软件,教师可以定制学生上机时的操作范围,从而避免其偷玩游戏和上网聊天等不良现象,这对教学质量的提高起着一定的正面作用。鉴于该软件的特点,它也可适用于公司、网吧中的主机监控及管理,具有很好的应用前景。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-9-29 07:27 , 耗时 0.095186 秒, 21 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表