赵睿
摘要:笔者在上次继续解决了机房收作业的一些缺陷后,经过一段时间试用,发现还是可以继续完善,遂开动脑筋加以修改。
关键词:VB;注册表
中图分类号:G250.7;TP311.52 文献标识码:A 文章编号:1672-9129(2017)12-0020-02
Abstract: after the author continued to solve some defects in the machine room collection operation last time, after a period of trial, he found that he could continue to improve, so he began to use his mind to modify it.
Key words: VB; registry
这次的问题出现在持续使用上,原来做的程序在启动时可以通过判断时间来确定课程,然后做好相关设置即可,可是,如果出现了连排的课程,比如12节是A课,34节是B课,当A课结束后,B课的老师接着上课,中途没有退出软件,这样会导致B课的作业收集在A课的文件夹下,所以,本次的修改主要是从这里着手。
1 修改思路
设计思路如下:利用timer控件,并设置时间节点。利用timer控件实时监控当前时间,如果发现时间到了对应的节点,做出判断,根据判断关闭极域电子教室,重新设置参数,然后重启极域电子教室。
2 完成方法
2.1 设置时间节点
根据学校上课的时间,我可以估算出时间节点,一般来说,在第12节和第34节之间需要切换课程,我可以把时间节点设置为9点到11点之间,因为一般来说10点左右会下第二节课的。下午和晚上的时间节点也是以此类推,分别设置到14点到16点之间以及18点到20点之间即可。
2.2 在程序启动时加入下面代码:
sj = Hour(Time)
这个sj变量需要定义成全局变量,因为我将用它来记录上次课程的时间节点,在后面会用到这个变量
2.3 增加timer控件,设置属性如下:
Interval设置为5000,意思为每过5秒,执行一次timer控件代码
2.4 为timer控件加入代码,代码如下:
Dim a
Dim b
Dim s As String
a = Hour(Time)
b = Minute(Time)
If (sj >= 7 And sj <= 9) And (a >= 9 And a <= 11) Then
Shell "cmd.exe /c taskkill /F /IM TeacherMain.exe"
sj = Hour(Time)
zidong
qd
ElseIf (sj >= 9 And sj <= 11) And (a >= 14 And a <= 16) Then
Shell "cmd.exe /c taskkill /F /IM TeacherMain.exe"
sj = Hour(Time)
zidong
qd
ElseIf (sj >= 14 And sj <= 16) And (a >= 18 And a <= 20) Then
Shell "cmd.exe /c taskkill /F /IM TeacherMain.exe"
sj = Hour(Time)
zidong
qd
End If
代碼的意思是,每过5秒,检测一下当前是多少时间了,如果当前时间是10点,而sj记录的时间节点是8点,则说明已经到了换课的时间了,这个时候用taskkill命令把极域电子教室给关掉,重新用sj记录当前时间节点,然后设置好极域电子教室的参数,重新启动电子教室,这样,就完成了课程更换时收集作业文件夹的更改。
2.5 继续完善代码:
上面的代码可以实现更换课程的要求,但是,由于时间跨度太大,可能出现换课不够精确的地方,比如说时间刚到9点,还在上第2节课,就更换成第三节课的作业收集了。所以,我需要把代码完善一下,让其更加准确,我更改了从12节课到34节课的代码,更改的代码如下:
If (sj >= 7 And sj <= 9) And (a >= 9 And a <= 11) Then
If (a = 10 And b >= 20) Then
Shell "cmd.exe /c taskkill /F /IM TeacherMain.exe"
sj = Hour(Time)
zidong
qd
End If ………………
因为第三节课的上课时间是10点20,所以,我利用a、b两个变量做了更加精确的判断,避免了上面所说的问题。
这个时候会有人问了,为什么后面的代码不需要更改呢?因为我们上课的时候只有12节课和34节课是连在一起的,56节和34节隔了一个中午,晚自习和56节也隔了几个小时,所以不会出现还在上第四节课或第六节课时就把作业收集文件夹换掉的情况。
3 后记与体会:
这次的程序写完后,经过一段时间的测试,终于再次得到了老师们和学生们的好评,提高了教学效率,经过对程序的反复修改,个人更加明白了做程序开发时反复测试的重要性,这么一个小小的程序都经过了很多次的修改,那些大的项目开发更是如此了。
参考文献:
[1]周庆贵.基于VB编程环境数据采集系统的设计[J].测控技术,2008(04): 62-64.
[2]秦乐乐,蒋佳,崔连生.基于VB的学生信息管理系统的设计与实现[J].河北工业科技,2006(04):206-209.
[3]胡智文,邓铁如,余增亮,陈连运.在VB应用程序中集成MATLAB[J].计算机工程与应用,2003(07):104-106.