




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、遠程控制系統(tǒng)中主控端及部分被控端設(shè)計摘 要目前,隨著計算機網(wǎng)絡(luò)的廣泛應(yīng)用,網(wǎng)絡(luò)速度越來越快,使用遠程控制技術(shù),可以對遠程計算機進行操作,就像控制本地計算機一樣。這種技術(shù)在遠程設(shè)備(軟件)的維護、監(jiān)控與故障診斷等方面有著廣泛的應(yīng)用前景。遠程技術(shù)支持將占據(jù)技術(shù)支持的主流:遠程教學和培訓也將快速發(fā)展。企業(yè)規(guī)模將迅速擴大,所有這些發(fā)展都為遠程控制軟件提供了一個廣闊的天地。簡單遠程控制系統(tǒng)由主控端和被控端兩部分組成。主控端用于實施各種對連網(wǎng)計算機的監(jiān)控操作,被控端對于接收到的數(shù)據(jù)進行分析,解釋并執(zhí)行。系統(tǒng)主要可以實現(xiàn)獲取被控端信息、被控端系統(tǒng)控制、消息發(fā)送和被控端界面控制的監(jiān)控功能。作者的主要工作是主控
2、端的設(shè)計與實現(xiàn)及整個獲取被控端信息模塊的設(shè)計與實現(xiàn)。本文對遠程控制系統(tǒng)原理和主要相關(guān)技術(shù)作了簡單介紹,在進行的需求分析之后,詳細描述了本系統(tǒng)的主控端的設(shè)計與實現(xiàn)及被控端的獲取被控端信息模塊的設(shè)計與實現(xiàn),最后表格形式給出測試結(jié)果。 關(guān)鍵詞:遠程控制;C/S模式;套接字Simple Remote Control System - The Design of Controlling Terminal and Parts of Controlled Terminal AbstractAt present, along with the development of the network techno
3、logy, the speed of the network is faster and faster. Using the technology of remote control, the remote computer can be controlled as conveniently as the local one. The technology of remote control can be very useful in the maintenance, monitoring and malfunction diagnosis of remote computers. Remot
4、e control technique will be a tide of technique support; distance education and train will also be developing in a high speed. The scope of enterprises will extend at a very fast speed in the same way. These all development provides a wide space for remote control software. The simple remote control
5、 system consists of two parts including controlling terminal and controlled terminal. We can monitor the controlled terminal and implement some operation about controlling the controlled terminal on the controlling monitor. The controlled terminal is used for analyzing, explaining and implement the
6、received data. The system can implement the function of getting the information of controlled terminal, control controlled terminal, sending messages, controlling the screen of the controlled computer and so on. My job is the design and implementation of the controlling terminal and the function of
7、getting the information of controlled terminal.The paper simply introduces the theory of remote control and the main correlative technology. After the analysis, it describes the design and implement of the controlling terminal and the function of getting the information of controlled terminal. At la
8、st, it shows the result in form of figures.Key words: Remote control; Client/Server mode; socket 目 錄論文總頁數(shù):24頁1引言11.1背景11.2國內(nèi)外研究現(xiàn)狀11.3本課題研究的意義21.4作者主要工作22相關(guān)理論基礎(chǔ)32.1遠程控制概述3遠程控制軟件的原理3遠程控制技術(shù)的應(yīng)用42.2開發(fā)環(huán)境52.3主要控件介紹5Winsock控件5Timer控件介紹52.4C/S模式52.5TCP協(xié)議與UDP協(xié)議介紹6TCP 協(xié)議6UDP 協(xié)議63需求分析63.1系統(tǒng)概貌63.2功能要求73.3主控端設(shè)計思路
9、73.4性能要求83.5運行要求84主控端及部分被控端設(shè)計與實現(xiàn)84.1簡單遠程控制系統(tǒng)結(jié)構(gòu)設(shè)計8簡單遠程控制系統(tǒng)的結(jié)構(gòu)8簡單遠程控制系統(tǒng)的功能模塊94.2系統(tǒng)功能的實現(xiàn)10主控端界面10功能實現(xiàn)過程11系統(tǒng)控制功能的實現(xiàn)11發(fā)送消息功能的實現(xiàn)13界面控制功能的實現(xiàn)144.3部分被控端程序功能的實現(xiàn)16被控端的連接16獲取被控端信息功能的實現(xiàn)175測試195.1測試環(huán)境195.2測試過程與結(jié)果19結(jié) 論21參考文獻221 引言1.1 背景遠程控制是在網(wǎng)絡(luò)上由一臺電腦(主控端Remote/客戶端)遠距離去控制另一臺電腦(被控端Host/服務(wù)器端)的技術(shù),這里的遠程不是字面意思的遠距離,一般指通過
10、網(wǎng)絡(luò)控制遠端電腦,不過,大多數(shù)時候我們所說的遠程控制往往指在局域網(wǎng)中的遠程控制而言,遠程控制必須通過網(wǎng)絡(luò)才能進行。主控端和被控端可以是位于同一局域網(wǎng)的同一房間中,也可以是連入Internet的處在任何位置的兩臺或多臺計算機。簡單遠程控制具有和木馬相同的原理,遠程控制一旦被居心不良者鉆了空子,它的危害甚至比木馬還要嚴重。遠程控制具有很多功能,例如遠程培訓與教學.遠程辦公.遠程管理與維護.遠程監(jiān)控。電腦中的遠程控制技術(shù),始于DOS時代,只不過當時由于技術(shù)上沒有什么大的變化,網(wǎng)絡(luò)不發(fā)達,市場沒有更高的要求,所以遠程控制技術(shù)沒有引起更多人的注意。但是,隨著網(wǎng)絡(luò)的高度發(fā)展,電腦的管理及技術(shù)支持的需要,遠
11、程操作及控制技術(shù)越來越引起人們的關(guān)注。1.2 國內(nèi)外研究現(xiàn)狀起初,使用遠程控制軟件,是為了讓PC用戶在離開辦公室時能訪問其臺式PC硬盤中的信息,甚至可以通過其臺式PC訪問企業(yè)網(wǎng)絡(luò)資源,今天,許多企業(yè)和增值分銷商正在把遠程控制能力作為有效的技術(shù)支持工具。很多網(wǎng)絡(luò)管理員都采用這類軟件對局域網(wǎng)進行管理,或者在家中更新自己網(wǎng)站的內(nèi)容。這類軟件對于出差在外的商務(wù)人員用處非常大,因為他們可以隨時提取自己家里計算機中的數(shù)據(jù)和資料。遠程控制軟件在計算機遠程教學和培訓中也發(fā)揮了很大的作用,使身處異地的學生能夠與老師進行適時交流,猶如坐在同一間教室。近年來,黑客技術(shù)不斷成熟起來,對網(wǎng)絡(luò)安全造成了極大的威脅。黑客的
12、主要攻擊手段之一就是使用遠程控制技術(shù),滲透到對方的主機系統(tǒng)里,從而實現(xiàn)遠程操作目標主機,其破壞力之大,是絕不容忽視的。目前,遠程控制技術(shù)也廣泛應(yīng)用在工業(yè)領(lǐng)域,可以對遠程數(shù)據(jù)進行實時監(jiān)控,提高工作效率,進而降低管理成本。遠程控制逐漸成為當前信息技術(shù)領(lǐng)域的熱點。,遠程控制在國內(nèi)外都有不同程度的研究。相對于來說,由于西方國家在信息技術(shù)和計算機控制技術(shù)的發(fā)展上的優(yōu)勢,他們在遠程控制方面相對早一些,已經(jīng)有了一些基本成熟的產(chǎn)品問世。國內(nèi)由于網(wǎng)絡(luò)的飛速發(fā)展,近幾年也開始積極的研究。國內(nèi)外在遠程控制機器人控制方面的研究相對比其它領(lǐng)域要多一些。這些遠程控制系統(tǒng)普遍采用了客戶/服務(wù)器模型(即C/S模型),可以是一
13、對一的模式,也可以是一對多的模式。遠程控制一般支持下面的這些網(wǎng)絡(luò)方式:LAN、WAN、撥號方式、互聯(lián)網(wǎng)方式。此外,有的遠程控制軟件還支持通過串口、并口、紅外端口來對遠程機進行控制(不過,這里說的遠程電腦,只能是有限距離范圍內(nèi)的電腦了)。傳統(tǒng)的遠程控制軟件一般使用NETBEUI、NETBIOS、IPX/SPX、TCP/IP等協(xié)議來實現(xiàn)遠程控制,不過,隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,目前很多遠程控制軟件提供通過Web頁面以Java技術(shù)來控制遠程電腦,這樣可以實現(xiàn)不同操作系統(tǒng)下的遠程控制。1.3 本課題研究的意義隨著社會、科技、經(jīng)濟的不斷發(fā)展,遠程控制技術(shù)的應(yīng)用范圍也在不斷擴展。小到個人的使用,大到整個行業(yè)的應(yīng)
14、用。遠程控制技術(shù)應(yīng)用到了我們生活中的各行各業(yè)中,從銀行、軍事、機要部門等特殊行業(yè)領(lǐng)域到電業(yè)部門、郵政電信部門、商業(yè)部門、普通工礦企業(yè)、道路交通領(lǐng)域、衛(wèi)生醫(yī)療部門以及賓館酒店行業(yè)等等,其卓越的功能也日益受到各個應(yīng)用行業(yè)的重視和青睞。遠程控制是當前信息技術(shù)領(lǐng)域的熱點,使用遠程控制技術(shù),我們可以克服因地域差異而造成的操作不便,讓網(wǎng)絡(luò)的效率得到更大的發(fā)揮。隨著技術(shù)的發(fā)展與網(wǎng)絡(luò)的普及,目前遠程控制技術(shù)的應(yīng)用領(lǐng)域已經(jīng)相當廣泛。我們不僅可以通過遠程控制技術(shù)管理遠端電腦,解決遠端電腦的故障,與其他同事通過網(wǎng)絡(luò)實現(xiàn)遠程協(xié)作,一起編輯一份文檔或者與其他團隊成員交流信息,還可以在家里或旅途中使用公司內(nèi)部網(wǎng)絡(luò)的數(shù)據(jù)與
15、辦公設(shè)備,實現(xiàn)遠程辦公。此外,您還能讓學員遠程連接到您的電腦,實時學習軟件的操作,或者與多位遠程連接用戶進行多點會話。 對于個人用戶而言,遠程控制技術(shù)最具吸引力的莫過于可以遙控遠端的電腦。用戶可以在家中操作辦公室里的電腦,或者在辦公室里調(diào)用存儲在家中的文檔,同時還可以當一回專家,通過遠程控制計算機為朋友的電腦排憂解難。1.4 作者主要工作 改系統(tǒng)軟件是本人與周睿同學共同研究開發(fā)的,周睿同學主要負責被控端的設(shè)計與開發(fā),本人主要負責主控端和部分被控端(獲取被控端信息)的設(shè)計與開發(fā)。本人在系統(tǒng)開發(fā)中的具體工作:1、搜尋與系統(tǒng)開發(fā)相關(guān)的資料,熟悉VB開發(fā)語言。 2、完成主控端界面設(shè)計。3、完成界面按鈕
16、與各個功能模塊的連接。4、完成主控端各個模塊的界面與程序代碼。5、完成整個獲取被控端信息功能模塊(包含被控端部分)。6、與周睿同學一起對系統(tǒng)進行調(diào)試和測試。7、歸并相關(guān)系統(tǒng)開發(fā)文檔,完成畢業(yè)論文的撰寫。2 相關(guān)理論基礎(chǔ)整個系統(tǒng)采用C/S(服務(wù)器/客戶機),即被控端/主控端模型設(shè)計。主控端程序運行在主控機上,被控端程序運行在受控機上。主控端向被控端發(fā)送請求和控制指令,被控端響應(yīng)請求并執(zhí)行相應(yīng)的功能。雙方之間是基于TCP/IP協(xié)議進行的點對點的通信。編碼是利用VB進行編程,使用Visual Basic 6.0進行編譯。2.1 遠程控制概述遠程控制是在網(wǎng)絡(luò)上由一臺電腦(主控端Remote/客戶端)遠
17、距離去控制另一臺電腦(被控端Host/服務(wù)器端)的技術(shù),這里的遠程不是字面意思的遠距離,一般指通過網(wǎng)絡(luò)控制遠端電腦,不過,大多數(shù)時候我們所說的遠程控制往往指在局域網(wǎng)中的遠程控制而言。當操作者使用主控電腦所控制被控電腦時,就如同坐在被控電腦的屏幕前一樣,可以啟動被控電腦的應(yīng)用程序,可以使用被控電腦的文件資料,甚至可以利用被控電腦的外部打印設(shè)備(打印機)和通信設(shè)備(調(diào)制解調(diào)器或者專線等)來進行打印和訪問互聯(lián)網(wǎng),就像你利用遙控器遙控電視的音量、變換頻道或者開關(guān)電視機一樣。不過,有一個概念需要明確,那就是主控電腦只是將鍵盤和鼠標的指令傳送給遠程電腦,同時將被控電腦的屏幕畫面通過通信線路回傳過來。也就是
18、說,我們控制被控電腦進行操作似乎是在眼前的電腦上進行的,實質(zhì)是在遠程電腦中實現(xiàn)的,不論打開文件,還是上網(wǎng)瀏覽、下載等都是存儲在遠程的被控電腦中的。2.1.1 遠程控制軟件的原理遠程控制軟件一般分兩個部分:一部分是客戶端程序Client,另一部分是服務(wù)器端程序Server(或Systry),在使用前需要將客戶端程序安裝到主控電腦上,將服務(wù)器端程序安裝到被控電腦上。它的控制的過程一般是先在主控電腦上執(zhí)行客戶端程序,像一個普通的客戶一樣向被控電腦中的服務(wù)器端程序發(fā)出信號,建立一個特殊的遠程服務(wù),然后通過這個遠程服務(wù),使用各種遠程控制功能發(fā)送遠程控制命令,控制被控電腦中的各種應(yīng)用程序運行,我們稱這種遠
19、程控制方式為基于遠程服務(wù)的遠程控制。通過遠程控制軟件,我們可以進行很多方面的遠程控制,包括獲取目標電腦屏幕圖像、窗口及進程列表;記錄并提取遠端鍵盤事件(擊鍵序列,即監(jiān)視遠端鍵盤輸入的內(nèi)容);可以打開、關(guān)閉目標電腦的任意目錄并實現(xiàn)資源共享;提取撥號網(wǎng)絡(luò)及普通程序的密碼;激活、中止遠端程序進程;管理遠端電腦的文件和文件夾;關(guān)閉或者重新啟動遠端電腦中的操作系統(tǒng);修改Windows注冊表;通過遠端電腦上、下載文件和捕獲音頻、視頻信號等。2.1.2 遠程控制技術(shù)的應(yīng)用1、遠程辦公這種遠程的辦公方式不僅大大緩解了城市交通狀況,減少了環(huán)境污染,還免去了人們上下班路上奔波的辛勞,更可以提高企業(yè)員工的工作效率和
20、工作興趣。2、遠程技術(shù)支持通常,遠距離的技術(shù)支持必須依賴技術(shù)人員和用戶之間的電話交流來進行,這種交流既耗時又容易出錯。許多用戶對電腦了解得很少,然而當遇到問題時,他們必須向無法看到電腦屏幕的技術(shù)人員描述問題的癥狀,并且嚴格遵守技術(shù)人員的指示精確地描述屏幕上的內(nèi)容,但是由于他們的電腦專業(yè)知識非常少,描述往往不得要領(lǐng),這就給技術(shù)人員判斷故障制造了非常大的障礙。即使技術(shù)人員明白了用戶電腦的問題所在,在嘗試解決問題時,技術(shù)人員可能會指導(dǎo)用戶執(zhí)行一系列復(fù)雜的命令,而這個過程對用戶來說是十分困難的,因為技術(shù)人員要依靠自己的語言來“操縱”用戶的鼠標和鍵盤簡直是太難了,如果用戶不能正確地遵照指示去做,問題可能
21、會進一步惡化,電腦很可能會因為錯誤的操作導(dǎo)致系統(tǒng)的崩潰。這樣一來,往往是技術(shù)人員要為十分簡單的一個問題和用戶說上十幾分鐘,甚至會專程跑到很遠的用戶那里幫助解決問題,而用戶往往因為問題還沒有解決,只好將電腦閑置不用,單等技術(shù)人員上門來解決問題。有了遠程控制技術(shù),技術(shù)人員就可以遠程控制用戶的電腦,就像直接操作本地電腦一樣,只需要用戶的簡單幫助就可以得到該機器存在的問題的第一手材料,很快就可以找到問題的所在,并加以解決。3、遠程交流利用遠程技術(shù),商業(yè)公司可以實現(xiàn)和用戶的遠程交流,采用交互式的教學模式,通過實際操作來培訓用戶,使用戶從技術(shù)支持專業(yè)人員那里學習示例知識變得十分容易。而教師和學生之間也可以
22、利用這種遠程控制技術(shù)實現(xiàn)教學問題的交流,學生可以不用見到老師,就得到老師手把手的輔導(dǎo)和講授。學生還可以直接在電腦中進行習題的演算和求解,在此過程中,教師能夠輕松看到學生的解題思路和步驟,并加以實時的指導(dǎo)。4、遠程維護和管理網(wǎng)絡(luò)管理員或者普通用戶可以通過遠程控制技術(shù)為遠端的電腦安裝和配置軟件、下載并安裝軟件修補程序、配置應(yīng)用程序和進行系統(tǒng)軟件設(shè)置。2.2 開發(fā)環(huán)境Visual Basic是基于對象的可視化程序開發(fā)工具,它的優(yōu)點在于能夠快捷、簡易的建立Windows應(yīng)用程序。Visual Basic是在原有BASIC語言的基礎(chǔ)上進一步發(fā)展,除了保留了BASIC語言的易學易用的優(yōu)點外,進一步增加了圖
23、形用戶界面的方法。專業(yè)人員可以用 Visual Basic實現(xiàn)其他任何Windows編輯語言的功能,而初學者也能迅速上手建立實用的應(yīng)用程序。Visual Basic 6.0中文版本簡介:Visual Basic的前身是QBASIC,語言基礎(chǔ)是Basic。 Basic(Beginners All-Purpose Symbolic Instruction Code)語言,是一種在計算機技術(shù)發(fā)展史上應(yīng)用的最為廣泛的語言。Visual Basic在原有Basic語言的基礎(chǔ)上進一步發(fā)展,至今包含了數(shù)百條語句、函數(shù)及關(guān)鍵詞,其中很多和Windows GUI有直接關(guān)系。Visual Basic除了保留了Ba
24、sic語言的易學易用的優(yōu)點外,進一步增加了開發(fā)圖形用戶界面的方法,以可視化的用戶界面設(shè)計機制,把程序設(shè)計人員從繁雜的界面設(shè)計工作中解脫出來,可以輕易的開發(fā)出具有優(yōu)秀的圖形界面和聲音、動畫、圖片集成的多媒體應(yīng)用程序。自從微軟推出VB后,它便成為了程序開發(fā)人員的首選工具。2.3 主要控件介紹2.3.1 Winsock控件Winsock 控件對用戶來說是不可見的,它提供了訪問 TCP 和 UDP 網(wǎng)絡(luò)服務(wù)的方便途徑。Microsoft Access、Visual Basic、Visual C+ 或 Visual FoxPro 的開發(fā)人員都可使用它。為編寫客戶或服務(wù)器應(yīng)用程序,不必了解 TCP 的細節(jié)
25、或調(diào)用低級的 Winsock APIs。通過設(shè)置控件的屬性并調(diào)用其方法就可輕易連接到一臺遠程機器上去,并且還可雙向交換數(shù)據(jù)。2.3.2 Timer控件介紹Timer(時鐘)控件響應(yīng)時間的流逝。它們獨立于用戶,編程后可用來在一定的時間間隔執(zhí)行操作。此控件一般用處是檢查系統(tǒng)時鐘,判斷是否執(zhí)行某項任務(wù)。對于其它后臺處理,Timer空間也是非常有用的。2.4 C/S模式C/S(Client/Server,客戶端/服務(wù)器)模式又稱C/S結(jié)構(gòu)。即大家熟知的客戶機和服務(wù)器結(jié)構(gòu)。它是軟件系統(tǒng)體系結(jié)構(gòu),通過它可以充分利用兩端硬件環(huán)境的優(yōu)勢,將任務(wù)合理分配到Client端和Server端來實現(xiàn),降低了系統(tǒng)的通訊開
26、銷。Client端的任務(wù)是將用戶的要求提交給Server端,再將Server端返回的結(jié)果以特定的形式顯示給用戶;Server端的任務(wù)是接收客戶端提出的服務(wù)請求,進行相應(yīng)的處理,再將結(jié)果返回給客戶端。2.5 TCP協(xié)議與UDP協(xié)議介紹2.5.1 TCP 協(xié)議數(shù)據(jù)傳輸協(xié)議允許創(chuàng)建和維護與遠程計算機的連接。連接兩臺計算機就可彼此進行數(shù)據(jù)傳輸。如果創(chuàng)建客戶應(yīng)用程序,就必須知道服務(wù)器計算機名或者IP 地址(RemoteHost 屬性),還要知道進行“偵聽”的端口(RemotePort 屬性),然后調(diào)用 Connect 方法。如果創(chuàng)建服務(wù)器應(yīng)用程序,就應(yīng)設(shè)置一個收聽端口(LocalPort 屬性)并調(diào)用
27、Listen 方法。當客戶計算機需要連接時就會發(fā)生 ConnectionRequest 事件。為了完成連接,可調(diào)用 ConnectionRequest 事件內(nèi)的 Accept 方法。建立連接后,任何一方計算機都可以收發(fā)數(shù)據(jù)。為了發(fā)送數(shù)據(jù),可調(diào)用 SendData 方法。當接收數(shù)據(jù)時會發(fā)生 DataArrival 事件。調(diào)用 DataArrival 事件內(nèi)的 GetData 方法就可獲取數(shù)據(jù)。2.5.2 UDP 協(xié)議用戶數(shù)據(jù)報協(xié)議 (UDP) 是一個無連接協(xié)議。跟 TCP 的操作不同,計算機并不建立連接。另外 UDP 應(yīng)用程序可以是客戶機,也可以是服務(wù)器。為了傳輸數(shù)據(jù),首先要設(shè)置客戶計算機的 L
28、ocalPort 屬性。然后,服務(wù)器計算機只需將 RemoteHost 設(shè)置為客戶計算機的 Internet 地址,并將 RemotePort 屬性設(shè)置為跟客戶計算機的 LocalPort 屬性相同的端口,并調(diào)用 SendData 方法來著手發(fā)送信息。于是,客戶計算機使用 DataArrival 事件內(nèi)的 GetData 方法來獲取已發(fā)送的信息。3 需求分析3.1 系統(tǒng)概貌簡單遠程控制系統(tǒng)包含被控端和主控端兩部分。被控端是運行在受控計算機上的一個程序。當運行主控端程序后將其設(shè)置成功,被控端通過輸入主控端的IP地址,并利用winsock控件來實現(xiàn)被控端與主控端的連接,然后通過主控端向被控端發(fā)送命
29、令,被控端響應(yīng)主控端的命令來實現(xiàn)相應(yīng)的功能。 主控端提供了一個集控制功能為一體的可視化界面,其作用是發(fā)送命令來實現(xiàn)對被控端的控制,該窗體包含了具有不同功能的按鈕,如:消息發(fā)送按鈕、隱藏任務(wù)欄按鈕、關(guān)閉計算機按鈕等。通過對這些按鈕的相應(yīng)操作,來實現(xiàn)對被控端的控制。3.2 功能要求本系統(tǒng)在功能要求上主要實現(xiàn)的功能有:主控端獲取被控端計算機系統(tǒng)信息、對被控端界面的控制、對被控端的系統(tǒng)控制以及對向被控端發(fā)送消息。1主控端獲取被控端系統(tǒng)信息。此模塊的主要功能是主控端能通過此功能了解到被控計算機上的系統(tǒng)信息,為后面進一步的對被控端進行控制作一個簡單的了解,也同時通過此功能對被控計算機上所安裝的軟、硬件進行
30、了解,做到對被控計算機的了解程度跟了解本機一樣。2對被控端的界面控制。此模塊主要實現(xiàn)主控端對被控計算機的用戶界面的控制,包括對開始按鈕的隱藏以及顯示、任務(wù)欄的隱藏以及顯示和桌面圖標的隱藏和顯示功能。3對被控端的系統(tǒng)控制。此模塊主要實現(xiàn)對被控計算機的機器系統(tǒng)的控制,包括對被控計算機實施關(guān)閉計算機、重新啟動被控端計算機以及注銷被控端計算機目前使用的用戶功能。做到使主控端用戶在主控計算機上就能很容易的控制被控計算機的系統(tǒng)。4向被控端發(fā)送信息。此模塊主要實現(xiàn)主控計算機向被控計算機發(fā)送文字性消息的功能,有了此功能模塊的建立,主控端用戶可以在本機上向被控端用戶傳遞信息和發(fā)送消息,做到了主控端的用戶與被控端
31、用戶的聯(lián)系。3.3 主控端設(shè)計思路主控端主要是發(fā)送各種控制命令給被控端,控制被控端實現(xiàn)各種控制功能。當程序運行時首先要進行主控端的設(shè)置,本系統(tǒng)采用了人性化的設(shè)計,調(diào)用了Winsock控件,所以用戶不需要自己來設(shè)置端口,只要鼠標點擊“設(shè)置主控端”按鈕就可以完成主控端的設(shè)置。設(shè)置成功后,系統(tǒng)提示設(shè)置成功,進入監(jiān)聽狀態(tài), 等待被控端發(fā)送連接請求,接收到連接請求后建立連接。主控端便可以實現(xiàn)對被控端的控制和消息的發(fā)送了。主控端分為兩大部分如圖1所示。第一個部分是操作部分,主要分為系統(tǒng)設(shè)置、被控端信息、系統(tǒng)控制、發(fā)送消息和界面控制五部分。第二部分是信息欄顯示,當主控端程序運行時會顯示主機的IP地址和主機名
32、,而當連接建立后,信息欄會顯示被控端的IP地址。主控端操作 信息欄主控端設(shè)置被控端信息系統(tǒng)控制發(fā)送消息 界面控制 主控端IP地址主控端主機名被控端IP地址圖1 主控端結(jié)構(gòu)3.4 性能要求主控端界面應(yīng)當簡單、友好、方便使用和操作;被控端是用作運行在被控計算機內(nèi)的可執(zhí)行文件,為提高執(zhí)行速度,從客戶端發(fā)送到服務(wù)端的信息應(yīng)盡量的少。主控端與被控端之間通過使用TCP協(xié)議建立連接,以實現(xiàn)對被控計算機的控制。3.5 運行要求設(shè)計出的簡單遠程控制軟件應(yīng)當在現(xiàn)在使用的大量操作系統(tǒng)上都能運行。例如:Windows 2000、Windows XP、Windows 2003;能在較低的硬件配置上運行,如128M的內(nèi)存
33、,AMD 1800+的處理器。4 主控端及部分被控端設(shè)計與實現(xiàn)4.1 簡單遠程控制系統(tǒng)結(jié)構(gòu)設(shè)計4.1.1 簡單遠程控制系統(tǒng)的結(jié)構(gòu)本系統(tǒng)主要是由主控端與被控端兩部分組成的。主控端為用戶提控進行遠程控制的操作平臺,負責發(fā)送命令給被控端和接收被控端的信息。被控端是用戶控制的目標,接收到主控端命令后,被控端會分析數(shù)據(jù)然后調(diào)用函數(shù)執(zhí)行命令。兩個部分是通過Winsock控件建立連接的,是基于TCP協(xié)議的點對點的通信。因為API函數(shù)的關(guān)系,用戶不需要自己來設(shè)置端口,大大的方便了用戶的操作。系統(tǒng)框架如圖2所示。圖2系統(tǒng)框架圖4.1.2 簡單遠程控制系統(tǒng)的功能模塊發(fā)送文字消息遠程控制系統(tǒng)主控端被控端設(shè)置主控端獲
34、取被控端消息被控端系統(tǒng)控制發(fā)送連接請求獲取命令并執(zhí)行控制被控端桌面圖3 系統(tǒng)功能結(jié)構(gòu)圖系統(tǒng)的操作功能主要分為四大模塊如圖所示。分別是:1、獲取被控計算機系統(tǒng)信息模塊:主控電腦獲得被控電腦的主要信息,主要包括可用的實際內(nèi)存大小、系統(tǒng)版本號、處理器序號、鼠標的按鈕個數(shù)和盤的文件系統(tǒng)類型等信息。、系統(tǒng)控制模塊:實現(xiàn)被控端計算機關(guān)機、注銷、重起功能。、發(fā)送消息模塊:主控端與被控端進行簡單的文字對話。、界面控制模塊:隱藏或顯示被控端開始按鈕、任務(wù)欄與桌面圖像。4.2 系統(tǒng)功能的實現(xiàn)4.2.1 主控端界面4.2.2 功能實現(xiàn)過程4.2.3 系統(tǒng)控制功能的實現(xiàn)本系統(tǒng)在此模塊中設(shè)計為當主控端把控制指令(關(guān)機、
35、重起、注銷)數(shù)據(jù)發(fā)送給被控端后,被控端接收到這些指令,則進行相應(yīng)的操作。一般說來如果被控端收到這些指令則調(diào)用相應(yīng)的API函數(shù)。在使用界面上運用了選項按鈕控件OPTIONBUTTON,在主控端程序中使用了程序控制結(jié)構(gòu)語句IfThenElse,應(yīng)用程序中可以經(jīng)過條件表達式的測試,并根據(jù)測試結(jié)果為TRUE和FALSE來決定程序運行的方向,只有當滿足TURE條件時才會進行下個程序流程,否則執(zhí)行另一個程序流程。例如當主控端測試結(jié)果為REBOOT時,主控端向被控端發(fā)送參數(shù)REBOOT,被控端根據(jù)參數(shù)調(diào)用函數(shù)Call shell并觸發(fā)事件過程重起被控端計算機。這里調(diào)用的Shell函數(shù)是VB中的內(nèi)部函數(shù),它負
36、責執(zhí)行一個可執(zhí)行文件,返回一個Variant(Double),如果成功的話,代表這個程序的進程ID,若不成功,則會返回0。Shell的語法:Shell(PathName,WindowStyle)。主要代碼如下:Private Sub Command1_Click()If Option1(0).Value = True ThenElseIf Option1(1).Value = True ThenElseEnd IfEnd Sub在被控端的聲明sckclient_DataArrival()函數(shù)部分寫入如下代碼:Case "CLOSECU" '關(guān)機Call Shell(
37、"shutdown -s -f")Case "REBOOT" '重起Call Shell("shutdown -r -f")Case "LogOff" '注銷Call Shell("shutdown -l -f") EndEnd SelectEnd Sub實現(xiàn)系統(tǒng)控制如圖5所示:圖 5 系統(tǒng)控制界面與“系統(tǒng)控制”相同,主控端在單擊別的操作按鈕時也執(zhí)行相應(yīng)的函數(shù),發(fā)送相應(yīng)的命令,被控端收到數(shù)據(jù)后,首先解包獲取命令代碼,再根據(jù)命令調(diào)圖6 功能執(zhí)行流程圖用對應(yīng)的操作函數(shù),執(zhí)行相關(guān)語句產(chǎn)
38、生相應(yīng)效果。大致過程如圖6所示。4.2.4 發(fā)送消息功能的實現(xiàn)本系統(tǒng)在發(fā)送消息模塊中使用MSGBOX控件,調(diào)用SendMessage函數(shù)來實現(xiàn)文字聊天功能。當主控端在發(fā)送信息窗體中輸入信息,點擊Command1控件按鈕時,觸發(fā)Command1_Click()事件過程,發(fā)送參數(shù)SENDIF給被控端,當被控端收到參數(shù)后觸發(fā)被控端的Command1_Click()事件并彈出消息文本對話框顯示由主控端發(fā)送過來的信息Text1.Text。其主要代碼如下:Private Sub Command1_Click()主控端End SubPrivate Sub Command1_Click()被控端End Sub
39、實現(xiàn)效果圖如7所示圖7主控端向被控端發(fā)送消息的效果圖4.2.5 界面控制功能的實現(xiàn)本系統(tǒng)在此模塊中調(diào)用Findwindow 和Showwindow 等函數(shù),實現(xiàn)對被控圖8 界面控制窗體端的桌面圖標、開始按鈕、任務(wù)欄的隱藏和顯示的功能。在主控端屏幕控制功能窗體中添加七個Command按鈕,分別是隱藏開始按鈕、顯示開始按鈕、隱藏任務(wù)欄、顯示任務(wù)欄、隱藏桌面、顯示桌面和退出(圖8)。用戶點擊各個功能按鈕時發(fā)送命令函數(shù)給被控端,實現(xiàn)屏幕控制功能。命令代碼如表3。表3功能按鈕與命令按鈕名稱命令函數(shù)隱藏開始按鈕mainform.scksever.SendData "HIDSTAR"顯示
40、開始按鈕mainform.scksever.SendData "APPSTAR"隱藏任務(wù)欄mainform.scksever.SendData "HIDTASK"顯示任務(wù)欄mainform.scksever.SendData "NOTHIDT"隱藏桌面mainform.scksever.SendData "HIDDISK"顯示桌面mainform.scksever.SendData "NOHIDDI"退出Unload Me在被控端connectform窗體中添加函數(shù)代碼,利用選擇函數(shù)激發(fā)事件,當
41、被控端收到主控端命令后,便產(chǎn)生相應(yīng)的效果。表4中是被控端命令代碼和相應(yīng)的操作函數(shù)。表4命令代碼與函數(shù)命令代碼操作函數(shù)HIDSTARShowWindow wnd, SW_HIDEAPPSTARShowWindow wnd, SW_SHOWHIDTASKShowWindow wnd, SW_HIDENOTHIDTShowWindow wnd, SW_SHOWHIDDISKShowWindow wnd, SW_HIDENOHIDDIShowWindow wnd, SW_SHOW被控端與主控端建立連接后,主控端用戶鼠標單擊“界面控制”按鈕,系統(tǒng)彈出界面控制窗體(圖8)。當用戶點擊隱藏開始按鈕時,被控端
42、即發(fā)送命令"HIDSTAR"給被控端。被控端接收到命令后,執(zhí)行命令隱藏開始按鈕。圖9 showwindow函數(shù)主要參數(shù)在這里主要調(diào)用了API中的ShowWindow函數(shù)來實現(xiàn)被控端界面的隱藏和顯示功能。 主要參數(shù)如圖9所示。因為命令代碼的格式基本相同下面進行以“隱藏開始按鈕”為例說明,具體命令如表3與表4所示?!?”后為代碼的注釋。寫入被控端的代碼如下:Private Sub Command1_Click()End Sub/定義Command1按鈕,當用戶點擊按鈕時發(fā)送隱藏開始命令"HIDSTAR"給被控端。寫入被控端的代碼如下:Case "H
43、IDSTAR" /接收HIDSTAR命令后,激發(fā)隱藏開始按鈕事件 wnd = FindWindowEx(wnd, 0, sStartButton, vbNullString) /利用FindWindow函數(shù)獲得窗口句柄 ShowWindow wnd, SW_HIDE /利用ShowWindow函數(shù)實現(xiàn)隱藏開始按鈕功能點擊不同的按鈕系統(tǒng)會發(fā)送相應(yīng)的命令函數(shù),顯示功能是相對于隱藏功能而言的,只有使用了隱藏功能后才可以使用顯示功能將畫面顯示出來。單方面的點擊顯示功能,被控端窗口顯示毫無變化。4.3 部分被控端程序功能的實現(xiàn)4.3.1 被控端的連接被控端程序在與主控端程序建立連接時首先設(shè)置R
44、emotehost屬性,指定運行主控端程序的主機名,設(shè)置RemotePort 屬性,指定主控端程序的監(jiān)聽端口。然后在主控端設(shè)置成功的前提下向主控端發(fā)送連接請求。主控端接收并通過被控端的請求,建立連接,就可以用SendData方法發(fā)送數(shù)據(jù)了。當被控端程序接收到數(shù)據(jù)時,發(fā)生DataArrival事件,參數(shù)BytesTotal包含接收到的數(shù)據(jù)字節(jié)數(shù)。該事件中,可以用GetData方法接收數(shù)據(jù),如果接收到Close事件,則用Close方法關(guān)閉連接。被控端工作流程如圖10所示。N Y 請求連接建立連接有用戶控制?獲取并發(fā)送指令結(jié)束開始圖10 被控端工作流程圖4.3.2 獲取被控端信息功能的實現(xiàn)前面幾個功
45、能模塊是和周睿同學分工合作開發(fā)的,本人主要是主控端的開發(fā),周睿同學負責被控端部分的開發(fā),而獲取被控端信息功能是作者獨自完成的。本系統(tǒng)在此模塊中通過使用SYSINFO控件的使用檢測系統(tǒng)事件,例如被控端計算機的系統(tǒng)版本號、系統(tǒng)類型、內(nèi)存狀況、系統(tǒng)盤信息等。將模塊代碼寫如SYSINFO()函數(shù)中后,當主控端Command1按鈕被按下后,觸發(fā)CLICK事件,主控端發(fā)送參數(shù)GETSYST到被控端后,被控端以GETSYST作為套接字字符串,采用DATAARRIRAL事件,當獲得調(diào)用中的全部數(shù)據(jù)GETDATA事件被觸發(fā),向主控端發(fā)送被控端系統(tǒng)信息。在這里調(diào)用了以下API函數(shù)來實現(xiàn)系統(tǒng)功能如表5所示。表5 A
46、PI函數(shù)與功能API函數(shù)名實現(xiàn)功能GetComputerName獲得計算機名稱GlobalMemoryStatus獲得當前可用的物理和虛擬內(nèi)存信息GetWindowsDirectory獲得WINDOWS系統(tǒng)路徑GetVersionEx檢索windows版本信息GetVolumeInformation獲得分區(qū)信息GetLogicalDriveStrings獲得邏輯驅(qū)動器盤符其具體代碼如下:Public Function sysinfo() As StringDim sys As SYSTEM_INFO Dim m As MEMORYSTATUS '內(nèi)存狀態(tài)Dim v As OSVERSI
47、ONINFO '版本信息Dim vname$, fsname$, strsave$, tmp$, tcd As String * 30Dim serial As Long '序列號GlobalMemoryStatus m '內(nèi)存情況v.dwOSVersionInfoSize = Len(v) '版本信息GetVersionEx vvname = Space(255)fsname = Space(255)GetVolumeInformation "c:", vname, 255, serial, 0, 0, fsname, 255 '獲
48、得容量'vname = stripnulls(vname)'fsname = stripnulls(fsname)tmp = Space(255)GetLogicalDriveStrings 255, tmp '獲得所有驅(qū)動器信息For a = Asc("a") To Asc("z")If InStr(tmp, Chr(a) & ":") Thenstrsave = strave & IIf(stsave > "", ",", ""
49、;) & Chr(a)End IfNext aGetSystemInfo sys '獲得CPU信息'返回信息s = "實際內(nèi)存大小為:" & m.dwTotalPhys 1024 2 & "MB"s = s & vbCrLf & "可用的實際內(nèi)存大小為:" & m.dwAvailPhys 1024 2 & "MB"s = s & vbCrLf & "虛擬內(nèi)存大小為:" & m.dwTotalVirtu
50、al 1024 2 & "MB"s = s & vbCrLf & "可用虛擬內(nèi)存大小為:" & m.dwAvailVirtual 1024 2 & "MB"s = s & vbCrLf & "以用內(nèi)存大小為:" & (m.dwTotalPhys - m.dwAvailPhys) 1024 2 & "MB"s = s & vbCrLf & vbCrLf & "系統(tǒng)版本號為:" &am
51、p; v.dwMajorVersion & "." & v.dwMinorVersions = s & vbCrLf & "系統(tǒng)類型 :" & IIf(v.dwPlatformId = 1, "95/98/me", "NT/2000")s = s & vbCrLf & vbCrLf & "處理器類型:" & sys.dwProcessorTypes = s & vbCrLf & "處理器序號:" & sys.dwNumberOfProcessorss = s & vbCrLf & vbCrLf & "鼠標的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中職出納考試題及答案
- 染料類型及應(yīng)用效果試題及答案
- 助理廣告師考試自我提升技巧試題及答案
- 全面探討紡織工程師考試試題及答案
- 企業(yè)電工面試題及答案
- 廣告設(shè)計師考試知識的深度剖析及答案
- 政策調(diào)研面試題及答案
- 關(guān)于鋁合金的試題及答案
- 助理廣告師考試內(nèi)容解析試題及答案
- 婦幼業(yè)務(wù)培訓試題及答案
- 設(shè)備采購方案投標文件(技術(shù)方案)
- 信息技術(shù)必修2信息系統(tǒng)與社會3.2《數(shù)據(jù)庫的構(gòu)建》教學設(shè)計
- 氫能源項目融資計劃書
- 投標人對本項目合理化建議及改進措施
- 2025年丹江口水力發(fā)電廠招聘筆試參考題庫含答案解析
- 住宅室內(nèi)裝飾裝修管理辦法
- 《挖掘客戶需求》課件
- 外科感染-有芽孢厭氧菌感染(外科課件)
- 政府采購招標投標管理制度
- 物業(yè)服務(wù)重點難點分析
- 【MOOC】國際金融學-湖南大學 中國大學慕課MOOC答案
評論
0/150
提交評論