摘 要:為了阻止學(xué)生在上計(jì)算機(jī)實(shí)驗(yàn)課時(shí)做與學(xué)習(xí)無關(guān)的事情,本文設(shè)計(jì)出計(jì)算機(jī)實(shí)驗(yàn)教學(xué)監(jiān)控系統(tǒng),它可以自動(dòng)對(duì)學(xué)生上機(jī)行為進(jìn)行監(jiān)控,提高學(xué)生的學(xué)習(xí)效率。經(jīng)過試驗(yàn)對(duì)比,在應(yīng)用該監(jiān)控系統(tǒng)后,學(xué)生的上機(jī)行為得到了有效的限制,機(jī)房產(chǎn)生的流量大幅減少,學(xué)生對(duì)計(jì)算機(jī)操作的能力有顯著的提高。
關(guān)鍵詞:實(shí)驗(yàn)教學(xué) 行為監(jiān)控 機(jī)房流量 監(jiān)控系統(tǒng)
中圖分類號(hào):G71文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-098X(2013)04(b)-0177-03
隨著計(jì)算機(jī)及互聯(lián)網(wǎng)的快速發(fā)展和普及,為了適應(yīng)社會(huì)需求,幾乎所有的高校都將計(jì)算機(jī)基礎(chǔ)課作為全校各專業(yè)學(xué)生必修的公共課。由于計(jì)算機(jī)是一門實(shí)踐性很強(qiáng)的學(xué)科,所以計(jì)算機(jī)實(shí)驗(yàn)教學(xué)部分就成為計(jì)算機(jī)基礎(chǔ)教學(xué)中的重點(diǎn),其教學(xué)效果直接影響著學(xué)生對(duì)計(jì)算機(jī)的應(yīng)用。在實(shí)驗(yàn)教學(xué)過程中,部分學(xué)生往往不按照要求進(jìn)行練習(xí),經(jīng)常做與實(shí)驗(yàn)無關(guān)的事情,如看視頻、聊QQ、打游戲等,既影響了學(xué)生對(duì)計(jì)算機(jī)知識(shí)的掌握、分散教師上課的精力,又給校園網(wǎng)絡(luò)帶來很大的負(fù)擔(dān)。針對(duì)這種狀況,該文設(shè)計(jì)出計(jì)算機(jī)實(shí)驗(yàn)教學(xué)監(jiān)控系統(tǒng),它可以自動(dòng)對(duì)學(xué)生上機(jī)行為進(jìn)行監(jiān)控,提高學(xué)生的學(xué)習(xí)效率。
1 需求分析
學(xué)生的需求:在上機(jī)實(shí)驗(yàn)過程中,部分學(xué)生的自我控制力差,他們有學(xué)習(xí)的意愿,但控制不住自己去做與學(xué)習(xí)無關(guān)的事,甚至有的學(xué)生在無法上網(wǎng)的情況下玩紙牌等單機(jī)版游戲。這就需要一個(gè)監(jiān)控系統(tǒng)對(duì)學(xué)生在上機(jī)過程中用到的進(jìn)程進(jìn)行監(jiān)控,發(fā)現(xiàn)游戲、視頻播放等進(jìn)程就自動(dòng)將其強(qiáng)制關(guān)閉[1]。
老師的需求:教師在上課過程中,對(duì)學(xué)生進(jìn)行上機(jī)指導(dǎo)的同時(shí),還要花費(fèi)很大的精力監(jiān)督學(xué)生的上機(jī)行為,這影響了教學(xué)效果。目前已有的監(jiān)控系統(tǒng)大都通過教師機(jī)監(jiān)控學(xué)生的上機(jī)情況,教師查看后采取相應(yīng)處理,雖然能起到一定的作用,但是仍不能保證教師將全部精力放到對(duì)學(xué)生的實(shí)驗(yàn)指導(dǎo)上。這就需要一個(gè)監(jiān)控系統(tǒng)在上課過程中不需要教師的參與,就能夠自動(dòng)地對(duì)學(xué)生的上機(jī)行為進(jìn)行監(jiān)控,只需要該系統(tǒng)在課前進(jìn)行簡(jiǎn)單地設(shè)置。
網(wǎng)絡(luò)管理的需求:在學(xué)生實(shí)驗(yàn)操作過程中,不可避免地用到網(wǎng)絡(luò),如果不對(duì)學(xué)生的上網(wǎng)行為進(jìn)行控制,學(xué)生就會(huì)做與學(xué)習(xí)無關(guān)的事情,如看視頻、打游戲等,而這些應(yīng)用都是非常消耗網(wǎng)絡(luò)帶寬資源的。據(jù)統(tǒng)計(jì),我校的機(jī)房在同時(shí)使用的情況下,機(jī)房占用的帶寬達(dá)到學(xué)??値挼?0%,嚴(yán)重影響了學(xué)校教職工正常的網(wǎng)絡(luò)辦公。針對(duì)這種情況,如果僅限制流量,又會(huì)導(dǎo)致機(jī)房網(wǎng)速過慢,達(dá)不到教學(xué)的效果,這就需要對(duì)占用帶寬大的進(jìn)程進(jìn)行監(jiān)控。
2 設(shè)計(jì)實(shí)現(xiàn)
2.1 功能分析
針對(duì)以上需求,監(jiān)控系統(tǒng)應(yīng)具有以下功能:
①監(jiān)控進(jìn)程設(shè)置 教師對(duì)需要監(jiān)控的進(jìn)程進(jìn)行設(shè)置,包括進(jìn)程名、運(yùn)行的時(shí)間段等。并通過增加和刪除實(shí)現(xiàn)對(duì)多個(gè)進(jìn)程的管理。
②進(jìn)程監(jiān)控 對(duì)教師設(shè)置的進(jìn)程進(jìn)行監(jiān)控,一旦發(fā)現(xiàn)有設(shè)置的進(jìn)程運(yùn)行,立即將其關(guān)閉。
③自我保護(hù) 保證進(jìn)程監(jiān)控系統(tǒng)能夠正常地運(yùn)行,不被學(xué)生關(guān)閉。
2.2 設(shè)計(jì)實(shí)現(xiàn)
考慮到便于教師的管理,我們采用c/s模式的系統(tǒng)結(jié)構(gòu),如圖1所示。
由圖1可知,整個(gè)系統(tǒng)分為教師機(jī)端程序和學(xué)生機(jī)端程序兩部分,這兩部分程序都是建立在網(wǎng)絡(luò)通信技術(shù)基礎(chǔ)上。教師機(jī)端程序主要實(shí)現(xiàn)對(duì)要監(jiān)控的進(jìn)程進(jìn)行設(shè)置,并向?qū)W生機(jī)端程序發(fā)送相關(guān)進(jìn)程的信息。學(xué)生機(jī)端程序主要是接收教師機(jī)端程序發(fā)送的相關(guān)進(jìn)程信息,運(yùn)行自身的監(jiān)控功能,同時(shí)保證自身程序不被學(xué)生關(guān)閉。
2.2.1 教師機(jī)端部分
教師機(jī)端部分主要負(fù)責(zé)對(duì)學(xué)生機(jī)運(yùn)行的進(jìn)程進(jìn)行設(shè)置,如圖2所示。
設(shè)置完成后,利用winsock網(wǎng)絡(luò)通信技術(shù)將進(jìn)程信息發(fā)送給學(xué)生機(jī)端程序[2-3]。
Winsock編程主要有以下步驟:
(1)初始化winsock 主要是利用WSAStartup函數(shù)對(duì)winsock資源進(jìn)行初始化。
(2)建立套接字并綁定。
(3)建立socket連接。
(4)通過套接字進(jìn)行網(wǎng)絡(luò)通信。
(5)關(guān)閉套接字 調(diào)用WSACleanun函數(shù)釋放Winsock資源。
2.2.2 學(xué)生機(jī)端部分
在學(xué)生機(jī)端部分,程序隨電腦主機(jī)的啟動(dòng)而啟動(dòng),主要是通過注冊(cè)表編程來實(shí)現(xiàn)。系統(tǒng)啟動(dòng)后不斷地監(jiān)聽教師機(jī)端程序發(fā)來的進(jìn)程信息,如果收到信息,立即將信息寫入到數(shù)據(jù)表中。
進(jìn)程監(jiān)控
系統(tǒng)運(yùn)行后監(jiān)控進(jìn)程立即工作,它不斷地檢測(cè)非法進(jìn)程的運(yùn)行狀況,一旦發(fā)現(xiàn)非法進(jìn)程,就立即關(guān)閉。學(xué)生機(jī)端部分功能如圖3所示。
執(zhí)行過程如下:
(1)定時(shí)獲取計(jì)算機(jī)系統(tǒng)中進(jìn)程的快照[4-6],同時(shí)獲取系統(tǒng)快照中的第一個(gè)進(jìn)程信息。
(2)判斷獲取的信息中的進(jìn)程名是否等于要監(jiān)控的進(jìn)程名,如果等于,轉(zhuǎn)步驟(3);否則,轉(zhuǎn)步驟(4)。
(3)關(guān)閉進(jìn)程。
(4)獲得系統(tǒng)快照中的下一個(gè)進(jìn)程的信息,轉(zhuǎn)步驟(2)。
主要源代碼如下:
bStatus=Process32First(hSnapShot,prosInfo);
while (bStatus)
{
if(prosInfo.szExeFile==thunder.exe)
{
dwProcessID=prosInfo.th32ProcessID;
hProcess=
::OpenProcess(PROCESS_TERMINATE,F(xiàn)ALSE,dwProcessID);
::TerminateProcess(hProcess, 0);
CloseHandle(hProcess);
MessageBox(L”該進(jìn)程已被禁止運(yùn)行,將立刻被關(guān)閉!\");
}
bStatus = Process32Next(hSnapShot, prosInfo);
}
進(jìn)程保護(hù)
學(xué)生端程序自我保護(hù)主要有兩個(gè)功能,一是保護(hù)監(jiān)控進(jìn)程不被關(guān)閉,是通過看守進(jìn)程來實(shí)現(xiàn)。二是保護(hù)看守進(jìn)程不被關(guān)閉,此功能類似于木馬,具有很強(qiáng)的生存能力,除非開發(fā)者留后門,否則用戶無法將其關(guān)閉。
看守進(jìn)程具體實(shí)現(xiàn)代碼如下:
szCommandLine[]=TEXT(\"D:\\Process\\debug\\Process.exe\");
do{
if(!CreateProcess( NULL,szCommandLine,NULL,NULL,F(xiàn)ALSE,0,NULL,NULL,si,pi)){
MessageBox(L\"進(jìn)程創(chuàng)建失?。");
}
WaitForSingleObject( pi.hProcess, INFINITE);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
}while(TRUE);
3 測(cè)試
3.1 功能測(cè)試
以監(jiān)控迅雷應(yīng)用程序(thunder.exe)和qq應(yīng)用程序(qq.exe)為例,首先,在教師機(jī)端設(shè)置需要監(jiān)控的程序,如圖4所示:
設(shè)置完成后,學(xué)生機(jī)端收到進(jìn)程信息,開始監(jiān)控禁止運(yùn)行的程序,如果發(fā)現(xiàn)有禁止運(yùn)行的程序,將立即關(guān)閉。如圖5所示。
3.2 效果測(cè)試
為了驗(yàn)證本系統(tǒng)在計(jì)算機(jī)實(shí)驗(yàn)教學(xué)中起到的效果,我們以2012級(jí)康復(fù)1班為例,將該班分兩組,每組25人,分組1使用該監(jiān)控系統(tǒng),分組2不使用監(jiān)控系統(tǒng)。這兩組均采用相同的教學(xué)方法和教學(xué)過程,兩組的實(shí)驗(yàn)考核成績(jī)對(duì)比如表1所示。
Word、excel、ppt是計(jì)算機(jī)實(shí)驗(yàn)教學(xué)中的重點(diǎn),因此,我們以這三個(gè)實(shí)驗(yàn)為例進(jìn)行對(duì)比,從上表中可知,采用本監(jiān)控系統(tǒng)的分組1的通過率明顯高于沒有采用監(jiān)控系統(tǒng)的分組2,分組1所在的機(jī)房產(chǎn)生的流量明顯低于分組2產(chǎn)生的流量,該系統(tǒng)達(dá)到了預(yù)期的目的。
4 結(jié)語
為了提高計(jì)算機(jī)實(shí)驗(yàn)教學(xué)的教學(xué)效率,本文研究并實(shí)現(xiàn)了計(jì)算機(jī)實(shí)驗(yàn)教學(xué)監(jiān)控系統(tǒng),主要從以下幾個(gè)方面進(jìn)行研究:(1)分析了現(xiàn)有的監(jiān)控系統(tǒng),針對(duì)我校計(jì)算機(jī)教學(xué)的實(shí)際情況,提出了本監(jiān)控系統(tǒng)的主要功能及系統(tǒng)結(jié)構(gòu);(2)認(rèn)真研究了實(shí)現(xiàn)本系統(tǒng)所需要的技術(shù),包括c++、定時(shí)器、鉤子、網(wǎng)絡(luò)編程等。(3)實(shí)現(xiàn)了本系統(tǒng)的主要功能,并通過測(cè)試。并將該系統(tǒng)應(yīng)用到實(shí)際教學(xué)中,從應(yīng)用效果看,該系統(tǒng)在實(shí)驗(yàn)教學(xué)過程中不需要教師的參與即可有效地對(duì)學(xué)生的上機(jī)行為進(jìn)行監(jiān)控,大大提高了學(xué)生的學(xué)習(xí)效率,具有較強(qiáng)的實(shí)用性和較高的推廣價(jià)值。
參考文獻(xiàn)
[1] 王明福,齊治文.多媒體網(wǎng)絡(luò)教學(xué)監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2010,36(7):291-293.
[2] 顧尚杰.計(jì)算機(jī)通信網(wǎng)基礎(chǔ)[M].北京:電子工業(yè)出版社,2001:135-138.
[3] 甘波,蘭柏.語音室監(jiān)控系統(tǒng)關(guān)鍵技術(shù)研究[J].信息與電腦,2012,6(2):38-39.
[4] 張安琳,黃道穎,李潢琦.Windows程序的基本框架和消息機(jī)制[J].電腦開發(fā)與應(yīng)用,2001,14(8):27-30.
[5]Jeffrey Richter,Christophe Nasarre.Windows via C/C++[M]. Washington:Microsoft Press ,2007:56-70.
[6]楊曉鵬.Visual C++7.0使用編程技術(shù)[M].北京:中國(guó)水利水電出版社,2002:38-40.