趙睿
摘要:筆者在上次繼續解決了機房收作業的一些缺陷后,經過一段時間試用,發現還是可以繼續完善,遂開動腦筋加以修改。
關鍵詞: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.