无纸化考试系统防止考生作弊的实现措施.doc

无纸化考试系统防止考生作弊的实现措施.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
无纸化考试系统防止考生作弊的实现措施 田民格 (三明学院 数学与计算机科学系,福建 三明 365004) 摘要:无纸化考试系统防止考生作弊是无纸化考试系统要解决的首要问题。本文介绍了无纸化考试系统考生可用的作弊手段和防止考生作弊的具体方法,用API调用技术、注册表技术、拦截消息技术、回调技术、钩子技术实现了这些方法并给出详细的Delphi实现代码。 关键词:无纸化考试系统; 作弊; 消息; 回调; 钩子 中图分类号:TP316   文献标识码:A 文章编号:1673-4343(2007)04-0456-04 The Solution to Prevent Examinee from Cheating of Paperless Examination System Tian Min-ge (Math and Computer Science Department,Sanming College,Sanming 365004,China) Abstract:Prevent examinee from cheating is one of chief problems to solve of no paper examination system.This paper introduces the measure of how to practising fraud for examinee and the solution to prevent examinee from practising fraud.Then,introduces the solution by using the technology of calling API,registry,heading off of the messages transferred to window by Windows,callback,lowlevel keyboard hook in detail with Delphi. Key words:No Paper Examination System; Practising fraud; Message; Callback; hook 无纸化考试防止考生作弊是无纸化考试系统要解决的一个很重要的问题[1][2],也是到目前为止国内多数著名无纸化考试系统尚未能完全解决的难题(笔者从事无纸化考试系统软件开发8年有余,见过考试系统几十个,如新为、永道、杰佛、无忧等软件公司的考试系统,都尚未完全解决此难题)。因为Windows是一个多任务的操作系统,在任一时刻都允许运行多个程序,同样,在无纸化考试过程中,要作弊的考生必然会通过各种途径(如Ctrl+Alt+Del)切换到其它应用程序并搜索到与考试相关的信息,使考试系统变成了“拷贝”系统,为此,如何使多任务的操作系统暂时失去多任务的功能(屏蔽Ctrl+Alt+Del热键等问题)是解决防止考生作弊的关键。本文使用Delphi综合应用了API调用技术、注册表技术、拦截消息技术、回调技术、钩子技术[3]等很好地实现了三层C/S模式[4]下的无纸化考试系统[5]中防止考生作弊问题。若采用B/S模式,则更难解决这些问题,且存在考题很难兼容Word格式等问题。 1 考试系统中防止考生作弊的问题与原理 考试系统中要防止考生作弊,按难度的不同,依次要解决四个方面的问题,即窗体的控制问题、任务栏的控制问题、热键的屏蔽问题、某些应用程序的智能提示信息。 1.1 窗体的控制问题 最简单的作弊手段就是直接通过键盘或鼠标切换到其它应用程序查看答案。这是多数无纸化考试系统都能解决的问题,就是将答题窗体最大化并保持在所有窗体的最上面,包括盖住任务栏,且窗体没有最小化和还原按钮,这样,考生即使切换到其它窗体,也被答题窗体盖住而无法看到答案。 但Delphi顶层技术存在一个漏洞,Delphi窗体在最大化时可用鼠标拖动标题栏移动窗体,而Delphi窗体没有禁止窗体移动的属性可用。解决的办法是拦截窗体感应消息WM_NCHITTEST和窗体位置改变消息WM_WindowPosChanging,前者将标题栏消息调包成窗体客户区消息,后者将窗体新坐标位置改变回成原坐标值,这样,无论考生通过何手段都无法移动窗体了。 通过拦截消息技术考生一般是无法移动窗体,包括控制菜单的移动命令也无法移动窗体,但考虑到控制菜单是操作系统提供的功能,为防某些操作系统绕过以上消息,作为安全的冗余技术,增加拦截窗体系统命令WM_SysCommand消息,若命令类型是移动窗体SC_MOVE或改变窗体大小SC_SIZE则将二命令丢弃即可防止考生通过控制菜单移动窗体。 1.2 任务栏的控制问题 答题窗体完全控制后,任务栏也是必须控

文档评论(0)

0716 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档