我自己用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()

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

基于python的在线考试系统-Python在线考试系统防作弊功能的思路和实现相关推荐

  1. python做一个考试系统_Python在线考试系统防作弊功能的思路和实现

    我自己用Python开发了一套教学管理软件,具有在线点名.提问.答疑.交作业.自测.在线考试.数据导入导出与汇总.Word试卷生成等多个功能,其中在线考试系统具有防作弊的功能,不少人觉得很神奇,其实思 ...

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

    我自己用Python开发了一套教学管理软件,具有在线点名.提问.答疑.交作业.自测.在线考试.数据导入导出与汇总.Word试卷生成等多个功能,其中在线考试系统具有防作弊的功能,不少人觉得很神奇,其实思 ...

  3. 在线考试系统,在线考试后台管理

    在线考试管理涵盖了出题.组卷.发布考试.导入考生信息.监考.自动评卷/人工评卷等完整流程. 前后台统一管理,操作更加人性化 在线考试系统按角色划分考生和管理员的界面,并且提供快捷的操作入口,即使对计算 ...

  4. php防作弊在线考试系统,在线考试系统如何实现防作弊?

    单位经常使用考试云在线考试系统给各部门的新员工做入职考核,因为分散在全国各地,无法在实地考场聚集一起考试,为了保证考试的公平公正,使用考试云的防作弊功能可以完美地解决这个难题,下面我来分享一下个人经验 ...

  5. 自学Python的最佳选择《Python可以这样学》正式出版

    资深Python爱好者董付国老师编著的经典图书<Python可以这样学>正式出版,500页78万7千字巨献,清华大学出版社官网(http://www.tup.com.cn/booksCen ...

  6. 施工工地考勤防作弊通道系统,建筑工地通道系统管理方案

    防作弊通道系统的必要性 随着经济改革的深入,人民群众的收入稳步提高,比如建筑.装潢等施工工地,一般工人的日薪都可达到200元,油漆匠.木工等技术工种收入更高.这同时也给工地的管理者带来了新的课题:如何 ...

  7. 称重软件-汽车衡称重防作弊系统整体解决方案

    一.汽车衡称重常见作弊手段分析 汽车衡称重常见作弊手段: 不完全上衡或者多台车辆同时上衡,达到增加或者减少货物净重的目的. 装车或卸车时更换货物品种,谋取不同货物品种之间差价.对于矿产品,这种作弊手段 ...

  8. 基于Python的Flask框架开发的在线电影网站系统(附源码)

    来源丨网络 今天给大家分享的是基于Python的Flask框架开发的在线电影网站系统. 项目介绍 项目介绍:网站前端采用HTML5编写,使用Bootstrap前端开发框架,后端使用Python3语言编 ...

  9. nodejs+vue+elementui 青少年编程在线考试系统python java php

    基于nodejs+vue+elementui技术的青少年编程在线考试系统可以借助于遍布全球的因特网进行,因此考试既可以在本地进行,也可以在异地进行,大大拓展了考试的灵活性. 试卷可以按照题库中的抽题策 ...

最新文章

  1. 高手速成android开源项目【blog篇】
  2. luoguP4503 [CTSC2014]企鹅QQ hash
  3. 将图片缩放成指定尺寸
  4. 软件开发者升职加薪的 8 项技能
  5. oracle隐式转换函数,隐式数据类型转换案例一则
  6. python package_python之package定义
  7. mysql添加有效值_物理数据库设计 - 限定列的有效值
  8. powermockito测试私有方法_使用JUnit、AssertJ和Mockito编写单元测试和实践TDD (十)在项目中准备测试环境...
  9. h264编解码器知识点
  10. java 64位时间戳转换32位时间戳
  11. 64位 Windows PLSQL Developer客户端配置方法
  12. SDL Trados Studio 2019 免费Google机器翻译插件安装和使用
  13. 启动计算机管理服务,win10系统打开服务管理器的五种方法
  14. CSS Sprite雪碧图应用
  15. 特殊用途的句子 - 虚拟
  16. 解密微信小程序用户敏感数据获取用户信息
  17. f1c100s kernel调试记录
  18. matlab从mp4文件中提取音频,怎么提取MP4视频中的音频,将MP4格式转换为MP3格式
  19. Java 将带有小数点的字符串转成Integer类型数值
  20. 【报告分享】2021上半年移动广告流量观察白皮书-APP GrowingMob研究院七麦数据(附下载)

热门文章

  1. Sberbank Russian Housing Market比赛总结
  2. linux gdb基本概念
  3. 可拖动jquery插件
  4. 百度地图API的第一次接触
  5. 让Swing表格支持远程后台数据翻页
  6. JQuery 自定义选择器 详解
  7. URAL1297 Palindrome【manacher算法】
  8. Spark —— RDD、DataFrame 与 Dataset
  9. 作文 —— 景物描写
  10. 推理集 —— 现象与观察