前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python在线考试系统防作弊功能的思路和实现

Python在线考试系统防作弊功能的思路和实现

作者头像
Python小屋屋主
发布2018-04-16 15:52:55
3.1K0
发布2018-04-16 15:52:55
举报
文章被收录于专栏:Python小屋Python小屋

我自己用Python开发了一套教学管理软件,具有在线点名、提问、答疑、交作业、自测、在线考试、数据导入导出与汇总、Word试卷生成等多个功能,其中在线考试系统具有防作弊的功能,不少人觉得很神奇,其实思路和代码都很简单。主要的原理是关闭文本编辑器并定时清空系统剪切板,不允许复制题目和其他任何内容,也不允许搜索网页,只能一个题一个题地做,并且每个人都是随机抽题,题库里有700多道题,所以相邻的两个人同一时间抽到同一题的概率非常小,有效防止了作弊。因为完整的系统代码比较多,我写了个Demo,模拟了系统中采用的防作弊功能。下面的代码运行后,单击“开始考试”按钮启用考试模式的防作弊功能,单击“结束考试”则禁用防作弊功能。

import os

import time

import tkinter

import threading

import ctypes

import psutil

root = tkinter.Tk()

root.title('防作弊演示--by董付国')

#窗口初始大小和位置

root.geometry('250x80+300+100')

#不允许改变窗口大小

root.resizable(False, False)

jinyong = tkinter.IntVar(root, 0)

def funcJinyong():

while jinyong.get()==1:

#强行关闭主流文本编辑器和网页浏览器

for pid in psutil.pids():

try:

p = psutil.Process(pid)

exeName = os.path.basename(p.exe()).lower()

if exeName in ('notepad.exe', 'winword.exe',

'wps.exe', 'wordpad.exe', 'iexplore.exe',

'chrome.exe', 'qqbrowser.exe',

'360chrome.exe', '360se.exe',

'sogouexplorer.exe', 'firefox.exe',

'opera.exe', 'maxthon.exe',

'netscape.exe', 'baidubrowser.exe',

'2345Explorer.exe'):

p.kill()

except:

pass

#清空系统剪切板

ctypes.windll.user32.OpenClipboard(None)

ctypes.windll.user32.EmptyClipboard()

ctypes.windll.user32.CloseClipboard()

time.sleep(1)

def start():

jinyong.set(1)

t = threading.Thread(target=funcJinyong)

t.start()

buttonStart = tkinter.Button(root, text='开始考试', command=start)

buttonStart.place(x=20, y=10, width=100, height=20)

def stop():

jinyong.set(0)

buttonStop = tkinter.Button(root, text='结束考试', command=stop)

buttonStop.place(x=130, y=10, width=100, height=20)

#模拟用,开启考试模式以后,所有内容都不再允许复制

entryMessage = tkinter.Entry(root)

entryMessage.place(x=10, y=40, width=230, height=20)

root.mainloop()

因为有的代码比较长,为了防止用手机查看时排版错乱,附上代码截图

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-12-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python小屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档