屏幕鎖定系統(tǒng)的設(shè)計與實(shí)現(xiàn)
0 引 言
隨著計算機(jī)技術(shù)和網(wǎng)絡(luò)通信技術(shù)的不斷發(fā)展,計算機(jī)的應(yīng)用領(lǐng)域也在不斷擴(kuò)大。目前,計算機(jī)早已成功進(jìn)入了學(xué)校、公司、政府部門乃至許多家庭,它在人們的工作生活中扮演著越來越重要的角色。面對一個擁有一定規(guī)模計算機(jī)的應(yīng)用場所,計算機(jī)的集中統(tǒng)一管理以及高效安全使用問題便成了日常管理與維護(hù)過程中的當(dāng)務(wù)之急。因此人們對于能夠?qū)崿F(xiàn)實(shí)時監(jiān)督、實(shí)時記錄用戶違規(guī)行為的監(jiān)控性工具軟件的需求也越來越迫切。為了對人們使用計算機(jī)的行為進(jìn)行控制,防止他們做一些與工作學(xué)習(xí)無關(guān)或有損計算機(jī)安全的事情,實(shí)現(xiàn)實(shí)時監(jiān)督及事后日志記錄分析,很有必要開發(fā)這樣一種監(jiān)控性軟件,即“屏幕鎖定系統(tǒng)”。該軟件可監(jiān)控、記錄、控制局域網(wǎng)內(nèi)其他計算機(jī)的使用行為,能夠有效地提高管理員對局域網(wǎng)的監(jiān)控管理能力,實(shí)現(xiàn)計算機(jī)的高效合理使用。
1 功能描述
屏幕鎖定系統(tǒng)是一種可以控制局域網(wǎng)主機(jī)行為的監(jiān)控性管理軟件。其功能描述如下:當(dāng)客戶端觸發(fā)了管理員所指定的“禁止進(jìn)程”后,客戶端的計算機(jī)將會被鎖定,只有等待管理員解鎖后方能使用計算機(jī)。即使客戶端關(guān)機(jī)后重啟,若繼續(xù)嘗試一些特殊的應(yīng)用程序,則機(jī)器仍然會被鎖定。一旦機(jī)器被鎖定,這臺計算機(jī)就會向管理控制臺發(fā)送這臺機(jī)器的IP地址、主機(jī)名、觸發(fā)進(jìn)程的時間、觸發(fā)的禁止進(jìn)程名等相關(guān)信息,達(dá)到管理員事后跟蹤一些違規(guī)操作的目的。管理員也可設(shè)置“關(guān)閉鎖定”功能,這樣客戶端就可隨意支配計算機(jī)。為了實(shí)現(xiàn)其監(jiān)控并鎖定的任務(wù),系統(tǒng)還應(yīng)能抵御惡意用戶的攻擊,如刪除客戶端軟件等。
2 系統(tǒng)設(shè)計與實(shí)現(xiàn)
根據(jù)系統(tǒng)的功能描述,程序分為兩大部分:服務(wù)器端程序和客戶端程序。服務(wù)器端程序的功能包括設(shè)置解鎖密碼,設(shè)置禁止進(jìn)程,獲得監(jiān)控信息,設(shè)置關(guān)閉鎖定,制作任務(wù)欄圖標(biāo)等。客戶端程序的功能包括接收解鎖密碼及禁止進(jìn)程,進(jìn)程查找匹配,鎖定屏幕,防止惡意刪除等。屏幕鎖定系統(tǒng)的功能結(jié)構(gòu),如圖1所示。
2.1 服務(wù)器端實(shí)現(xiàn)
服務(wù)器端軟件主要負(fù)責(zé)對客戶端進(jìn)行控制、管理及查看監(jiān)控信息等。服務(wù)器端的主界面如圖2所示。
2.2 客戶端實(shí)現(xiàn)
當(dāng)客戶端觸發(fā)了服務(wù)器端指定的禁止進(jìn)程后,其屏幕就會被鎖定。鎖定后的界面如圖3所示。一旦機(jī)器被鎖定,客戶端就會向服務(wù)器端傳遞諸如“主機(jī)名、IP地址、觸發(fā)時間、觸發(fā)的禁止進(jìn)程”等信息,并且只有請求管理員解鎖,方能繼續(xù)使用計算機(jī)。
3 關(guān)鍵技術(shù)
3.1 WinSoek通信
客戶端與服務(wù)器端的正常通信,是屏幕鎖定系統(tǒng)賴以存在的基礎(chǔ)。該系統(tǒng)借助于WinSock實(shí)現(xiàn)。VB中提供了WinSock控件。WinSoek控件解決了以往應(yīng)用VB編程時應(yīng)用程序之間無法實(shí)現(xiàn)點(diǎn)對點(diǎn)通信的難題。WinSock使用的TCP協(xié)議和UDP協(xié)議,允許建立并保持到遠(yuǎn)程計算機(jī)上的連接,且可以在連接結(jié)束之前實(shí)時進(jìn)行數(shù)據(jù)交換。用戶僅通過設(shè)置屬性并借助事件處理就能夠輕而易舉地連接到一個遠(yuǎn)程計算機(jī)上,而且只用兩個命令就可以實(shí)現(xiàn)數(shù)據(jù)交換。
在傳送數(shù)據(jù)時,需要先設(shè)定客戶機(jī)的LocalPort屬性,服務(wù)器則只需要把RemoteHost屬性設(shè)定為機(jī)器所在網(wǎng)段的廣播地址,并設(shè)定與客戶機(jī) LocalPott屬性相同的端口地址,借助SendData方法開始發(fā)送消息??蛻魴C(jī)則在GetData事件中通過DataArrival事件分離出發(fā)送的信息。
3.2 進(jìn)程控制機(jī)制
進(jìn)程控制機(jī)制實(shí)現(xiàn)客戶端的進(jìn)程查找及匹配的過程。進(jìn)程控制是指查找當(dāng)前系統(tǒng)正在運(yùn)行的所有進(jìn)程,并比較其與禁止進(jìn)程列表,若匹配成功則殺掉正在運(yùn)行的禁止進(jìn)程。實(shí)現(xiàn)過程為:調(diào)用系統(tǒng)API函數(shù)Create-Toolhelp32Snapshot查找客戶機(jī)正在運(yùn)行的進(jìn)程,并使用時鐘實(shí)時刷新,將其記錄到下拉框list1中;從禁止進(jìn)程文件中讀取進(jìn)程并記錄到下拉框list2中;使用兩個for循環(huán)比較list1和list2中進(jìn)程是否相同,如果相同,就殺掉正在運(yùn)行的禁止進(jìn)程,并調(diào)用屏幕鎖定窗體。實(shí)現(xiàn)流程如圖4所示。
3.3 屏幕鎖定機(jī)制
屏幕鎖定機(jī)制實(shí)現(xiàn)客戶端觸發(fā)了禁止進(jìn)程后的屏幕鎖定功能。屏幕鎖定的過程包含以下任務(wù):屏蔽系統(tǒng)熱鍵,使鎖定窗體處于最上方,鎖定時隱藏任務(wù)條,解鎖后顯示任務(wù)條等過程。屏幕鎖定機(jī)制的主要理論依據(jù)是掛鉤API技術(shù)(HookAPI)。鉤子 (Hook)是Windows消息處理機(jī)制中的一個監(jiān)視點(diǎn),應(yīng)用程序可以在這里安裝一個子程序(鉤子函數(shù)),以監(jiān)視指定窗口某種類型的消息,所監(jiān)視的窗口可以是其他進(jìn)程創(chuàng)建的。當(dāng)消息到達(dá)后,在目標(biāo)窗口處理函數(shù)處理之前,鉤子機(jī)制允許應(yīng)用程序截獲它進(jìn)行處理。而HookAPI就是指截獲特定的進(jìn)程或系統(tǒng)對某個API函數(shù)的調(diào)用,使得API的執(zhí)行流程轉(zhuǎn)向指定的代碼。鉤子的安裝與卸載是通過SetWindow-sHookEx函數(shù),以動態(tài)鏈接庫的方式安裝到系統(tǒng)中的。
屏幕鎖定的實(shí)現(xiàn)過程為:調(diào)用API函數(shù)SetWin-dowsHookExA和LowLevelKeyboardProc可以屏蔽熱鍵;調(diào)用函數(shù) SetWindowPos(HWND hWnd,HWND hWndlnsertAfter,int x,int y,int cx,int cy,UINT uFlags),并為其賦予不同的實(shí)參,就可實(shí)現(xiàn)窗體處于最上方、隱藏或顯示任務(wù)條的功能。實(shí)現(xiàn)流程如圖5所示。
4 系統(tǒng)特點(diǎn)
該系統(tǒng)的特點(diǎn)體現(xiàn)為以下幾點(diǎn):
(1)不同于單機(jī)版的的屏幕鎖定系統(tǒng),本系統(tǒng)適用于在局域網(wǎng)中使用,它首次運(yùn)行后即可開機(jī)自動運(yùn)行,實(shí)時監(jiān)控;
(2)服務(wù)器端和客戶端均可以靈活查找自己所在的機(jī)器網(wǎng)段,并通過設(shè)置相應(yīng)端口實(shí)現(xiàn)一對多通信,不會因機(jī)器網(wǎng)段的變化而修改程序,具有很強(qiáng)的自適應(yīng)能力;
(3)服務(wù)器端解鎖密碼的設(shè)置非常靈活,不必清楚上次的密碼,很適合于多個管理員的操作;
(4)“禁止進(jìn)程”的設(shè)定非常方便,有利于不同層次人員的使用;
(5)服務(wù)器端解除監(jiān)控的設(shè)置,使客戶端能靈活支配計算機(jī),符合人性化管理方案;
(6)客戶端軟件具有很強(qiáng)的自抵御能力,能抵擋惡意用戶的強(qiáng)制刪除。
5 結(jié) 語
計算機(jī)在人們的工作生活中扮演著越來越重要的角色,計算機(jī)的高效率使用已成了日常管理中亟待解決的問題。這里詳細(xì)論述了屏幕鎖定系統(tǒng)的設(shè)計與實(shí)現(xiàn)。通過此軟件,教師可以定制學(xué)生上機(jī)時的操作范圍,從而避免其偷玩游戲和上網(wǎng)聊天等不良現(xiàn)象,這對教學(xué)質(zhì)量的提高起著一定的正面作用。鑒于該軟件的特點(diǎn),它也可適用于公司、網(wǎng)吧中的主機(jī)監(jiān)控及管理,具有很好的應(yīng)用前景。