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

无纸化考试系统防止考生作弊的实现措施田民格(三明学院数学与计算机科学系,福建三明365004)摘要:无纸化考试系统防止考生作弊是无纸化考试系统要解决的首要问题。本文介绍了无纸化考试系统考生可用的作弊手段和防止考生作弊的具体方法,用API调用技术、注册表技术、拦截消息技术、回调技术、钩子技术实现了这些方法并给出详细的Delphi实现代码。关键词:无纸化考试系统;作弊;消息;回调;钩子中图分类号:TP316文献标识码:A文章编号:1673-4343(2007)04-0456-04TheSolutiontoPreventExamineefromCheatingofPaperlessExaminationSystemTianMin-ge(MathandComputerScienceDepartment,SanmingCollege,Sanming365004,China)Abstract:Preventexamineefromcheatingisoneofchiefproblemstosolveofnopaperexaminationsystem.Thispaperintroducesthemeasureofhowtopractisingfraudforexamineeandthesolutiontopreventexamineefrompractisingfraud.Then,introducesthesolutionbyusingthetechnologyofcallingAPI,registry,headingoffofthemessagestransferredtowindowbyWindows,callback,lowlevelkeyboardhookindetailwithDelphi.Keywords:NoPaperExaminationSystem;Practisingfraud;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任务栏的控制问题答题窗体完全控制后,任务栏也是必须控制重要部分。没有经过全面的β测试,一般很难发现这一问题,因此笔者所见过的所有考试系统都忽视了这一问题。在XP操作系统中,只要运行某些程序或答题窗体弹出消息框时(如考生单击退出考试按钮或菜单弹出确认消息框时),答题窗体将不能保持在所有窗体的最上面,任务栏会定时刷新并浮于答题窗体的上面,考生只要将鼠标右击任务栏就可以将所有窗体最小化,然后就可以切换到其它窗体。解决的办法是调用操作系统API函数隐藏任务...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

笔杆子文秘
机构认证
内容提供者

为您提供优质文档,供您参考!

确认删除?