屏幕鎖定系統的設計與實現
在傳送數據時,需要先設定客戶機的LocalPort屬性,服務器則只需要把RemoteHost屬性設定為機器所在網段的廣播地址,并設定與客戶機 LocalPott屬性相同的端口地址,借助SendData方法開始發送消息。客戶機則在GetData事件中通過DataArrival事件分離出發送的信息。
3.2 進程控制機制
進程控制機制實現客戶端的進程查找及匹配的過程。進程控制是指查找當前系統正在運行的所有進程,并比較其與禁止進程列表,若匹配成功則殺掉正在運行的禁止進程。實現過程為:調用系統API函數Create-Toolhelp32Snapshot查找客戶機正在運行的進程,并使用時鐘實時刷新,將其記錄到下拉框list1中;從禁止進程文件中讀取進程并記錄到下拉框list2中;使用兩個for循環比較list1和list2中進程是否相同,如果相同,就殺掉正在運行的禁止進程,并調用屏幕鎖定窗體。實現流程如圖4所示。本文引用地址:http://www.104case.com/article/202663.htm
3.3 屏幕鎖定機制
屏幕鎖定機制實現客戶端觸發了禁止進程后的屏幕鎖定功能。屏幕鎖定的過程包含以下任務:屏蔽系統熱鍵,使鎖定窗體處于最上方,鎖定時隱藏任務條,解鎖后顯示任務條等過程。屏幕鎖定機制的主要理論依據是掛鉤API技術(HookAPI)。鉤子 (Hook)是Windows消息處理機制中的一個監視點,應用程序可以在這里安裝一個子程序(鉤子函數),以監視指定窗口某種類型的消息,所監視的窗口可以是其他進程創建的。當消息到達后,在目標窗口處理函數處理之前,鉤子機制允許應用程序截獲它進行處理。而HookAPI就是指截獲特定的進程或系統對某個API函數的調用,使得API的執行流程轉向指定的代碼。鉤子的安裝與卸載是通過SetWindow-sHookEx函數,以動態鏈接庫的方式安裝到系統中的。
屏幕鎖定的實現過程為:調用API函數SetWin-dowsHookExA和LowLevelKeyboardProc可以屏蔽熱鍵;調用函數 SetWindowPos(HWND hWnd,HWND hWndlnsertAfter,int x,int y,int cx,int cy,UINT uFlags),并為其賦予不同的實參,就可實現窗體處于最上方、隱藏或顯示任務條的功能。實現流程如圖5所示。
4 系統特點
該系統的特點體現為以下幾點:
(1)不同于單機版的的屏幕鎖定系統,本系統適用于在局域網中使用,它首次運行后即可開機自動運行,實時監控;
(2)服務器端和客戶端均可以靈活查找自己所在的機器網段,并通過設置相應端口實現一對多通信,不會因機器網段的變化而修改程序,具有很強的自適應能力;
(3)服務器端解鎖密碼的設置非常靈活,不必清楚上次的密碼,很適合于多個管理員的操作;
(4)“禁止進程”的設定非常方便,有利于不同層次人員的使用;
(5)服務器端解除監控的設置,使客戶端能靈活支配計算機,符合人性化管理方案;
(6)客戶端軟件具有很強的自抵御能力,能抵擋惡意用戶的強制刪除。
5 結 語
計算機在人們的工作生活中扮演著越來越重要的角色,計算機的高效率使用已成了日常管理中亟待解決的問題。這里詳細論述了屏幕鎖定系統的設計與實現。通過此軟件,教師可以定制學生上機時的操作范圍,從而避免其偷玩游戲和上網聊天等不良現象,這對教學質量的提高起著一定的正面作用。鑒于該軟件的特點,它也可適用于公司、網吧中的主機監控及管理,具有很好的應用前景。
評論