总体需求:这次的项目是关于记录学生上机情况,将学生上机敲击的键记录下来,通过邮件的方式发送到教师邮箱,以检测学生是否认真完成上机任务。
学生端界面如下图
详细需求如下:
- 为了简化学生端的操作,学生不必填写两个邮箱,而是设置收发邮件使用同一个邮箱,每个老师申请一个邮箱,作为所有数据的收发。为了区分每次实验的不同,在备注信息处填写相应的信息。
- 将学生填写的信息与键盘记录的信息封装成邮件进行发送。键盘记录的信息根据老师的需求:每100个键盘信息取15个+敲击次数+敲击时间。
- 一台电脑只能打开一个客户端程序,防止了一人将多人的上机情况同时做完。
- 设置了最短上机时间为60分钟,避免同学提前下课。
- 有友好的提示信息,提示操作出现的问题。
———————————————–分界线———————————————–
原理:
- 使用键盘钩子监听,记录键盘信息。
- 键盘信息的追加使用了字符串的操作
- 当没有监听到键盘输入时,使用默认字符串:“没有记录到该学生的上机情况”,发送邮件,解决了因为解析键盘输入为null时出现异常的问题。
- 使用线程,避免同时打开多个客户端。
- 界面美化,使用了ssk
- 防止恶意操作,如疯狂点击开始,疯狂点击结束。点击开始即记下开始时间,若疯狂点击,会以点击最后一次开始的时间为开始时间,因此设置了当第二次点击开始时,给出提示,开始时间仍然为第一次点击的时;一但点击结束,就会触发发送邮件事件,避免恶意操作产生恶意邮件,对点击结束按钮可点时间设置为开始后的60分钟后,一但点击结束按钮,就会立即发送邮件并关闭客户端。
————————————又一道靓丽的分界线————————————–
附上打包好的exe文件:链接:https://pan.baidu.com/s/1OVyuDleoRtiCnk2-vxXQMA 密码:tuoj
教师的邮件需要设置一些参数才能使用。私信咨询相关配置。