楊鵬 尹小敏
摘要:討論了機房機群遙控程序的設計方法,給出了關鍵過程的分析與詳細代碼。
關鍵詞:UDP;廣播;Windows Hook;Delphi
中圖分類號:TP311.52? ? ? ? 文獻標識碼:A? ? ? 文章編號:1009-3044(2018)34-0016-05
1 背景
機房管理和維護工作中,經常需要在許多臺具有相同軟硬件配置的計算機上進行重復的操作,特別是大多數學校機房也會承擔各種人機對話考試任務。為減輕工作強度,一般會先在一臺計算機上進行設置,然后使用網絡克隆的方式部署到其他計算機上。但也有不少任務是無法通過網絡克隆的方法完成的,必須進行單機操作。因此,開發(fā)一種能夠在局域網中遙控機房所有計算機的實用工具非常必要。該程序的界面如圖1所示。
2 設計思路
根據實際操作的需要,機群遙控程序必須允許由任何一臺計算機遙控網絡中的其他計算機,因此,遙控程序必須能夠在遙控模式與受控模式之間切換。該程序的基本設計思路為:所有相關的計算機以受控模式啟動該程序,然后進行偵聽;當管理員將選擇的計算機切換到遙控模式并開始遙控時,利用鉤子程序收集所有鼠標和鍵盤消息,以UDP協議向網絡中發(fā)出廣播;當受控計算機接收到鼠標鍵盤消息后再模擬相應事件,從而達到遙控目的。
3 消息隊列的定義與實現
遙控端程序與受控端程序通過消息隊列傳遞遙控數據,因此,鍵盤、鼠標鉤子數據結構的定義與消息隊列的定義同時在服務于兩個模塊,其定義與實現如下。
3.2 消息轉換器的定義與實現
消息轉換器的作用是在遙控端將命令及其參數轉換為文本,而在受控端將文本轉換為命令和參數。對于遙控端程序,將鉤子獲取的數據轉換為文本,送入消息隊列,等待定時器發(fā)送;對于受控端程序,將網絡獲取的文本數據送入執(zhí)行隊列,等待命令執(zhí)行定時器將文本轉換為對應的命令并執(zhí)行。其定義與關鍵實現如下。
6 結束語
在實際工作中,該機群遙控程序極大地提高了各類考試系統的部署效率,降低了機房維護人員的工作強度。當然,該程序也存在可以改進之處,例如,UDP廣播可能導致的網絡阻塞,計算機切換到遙控狀態(tài)時并不會檢查局域網中是否已存在遙控端程序。
參考文獻:
[1] 吳林, 劉曄. 基于VB.NET實現全局鍵盤鼠標鉤子[J]. 電腦知識與技術, 2010, 6(36): 10328-10331.
[2] 孫建華, 劉金龍. VB中利用日志記錄鉤子實現鍵盤監(jiān)控[J]. 電腦編程技巧與維護, 2011(2): 3-4.
[3] 魏景東. 利用HOOK技術對鍵盤輸入監(jiān)視[J]. 電腦編程技巧與維護, 2011(11): 86-88.
[4] 李納璺, 潘小盟. 利用MFC多線程技術開發(fā)基于UDP數據廣播的局域網絡會議程序[J]. 電腦編程技巧與維護, 2004(2): 70-73.
[5] 朱浩, 呂明. 用UDP協議實現網絡語音廣播[J]. 電信工程技術與標準化, 2005(8): 53-56.
【通聯編輯:謝媛媛】