版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于java c/s遠(yuǎn)程監(jiān)控系統(tǒng)軟件的實(shí)現(xiàn)摘 要近年來(lái),網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,為遠(yuǎn)程監(jiān)控技術(shù)的發(fā)展創(chuàng)造了條件。遠(yuǎn)程監(jiān)控系統(tǒng)軟件越來(lái)越受到人們的重視,其實(shí)用性也毋庸質(zhì)疑?;趈ava c/s遠(yuǎn)程監(jiān)控系統(tǒng)軟件突破了空間的限制,使用者不用親臨,在自己的電腦面前就能輕松的實(shí)現(xiàn)對(duì)被監(jiān)控端機(jī)器的監(jiān)控。本系統(tǒng)采用java網(wǎng)絡(luò)編程和java圖形編程實(shí)現(xiàn)。筆者在開(kāi)發(fā)過(guò)程中將網(wǎng)絡(luò)技術(shù)與遠(yuǎn)程監(jiān)控理論基礎(chǔ)相結(jié)合,實(shí)現(xiàn)了以下功能:能連續(xù)獲得被監(jiān)控端機(jī)器屏幕變化;實(shí)現(xiàn)被監(jiān)控端硬盤(pán)文件的上傳、下載;實(shí)現(xiàn)對(duì)鼠標(biāo)、鍵盤(pán)的模擬;實(shí)現(xiàn)在遠(yuǎn)程機(jī)器上執(zhí)行任意dos命令;遠(yuǎn)程關(guān)機(jī)、遠(yuǎn)程重啟計(jì)算機(jī),方便了用戶(hù)監(jiān)視和操作被監(jiān)控端機(jī)器。本系統(tǒng)從
2、系統(tǒng)需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)到具體的編碼實(shí)現(xiàn)和后期的代碼優(yōu)化、功能測(cè)試都嚴(yán)格遵循了軟件工程的思想。關(guān)鍵詞:遠(yuǎn)程監(jiān)控;java robot;屏幕截??;java socketthe implementation of the remote control system software based on java technology and the c/s modeabstractin recent years, the continuous development of the internet technology provides remote control technology w
3、ith condition for its development. without any suspicion to its practicability, people pay more and more attention to remote control technology system software. remote control technology system software based on java technology and the c/s mode, breaks the restriction of space. the system adopts net
4、work programming and graphic programming with java, and the users controlling the remote computer easily. in the process of research, the author united network programming and remote control theory together, which allows the system to successfully achieve the following functions: continuously obtain
5、ing the remote computer screen; uploading and downloading the document from the remote computer and the simulation of mouse and keyboard; controlling the remote machines to execute any dos commands; turning off and restarting the computer. from the system requirements analyses, general design, codin
6、g and the code optimization, function testing, the remote control technology system strictly keeps to the ideas of software engineering.key words: remote control technology; java robot; screen capture; java socket目 錄論文總頁(yè)數(shù):21頁(yè)1 引 言11.1 遠(yuǎn)程監(jiān)控的背景知識(shí)11 2 遠(yuǎn)程監(jiān)控軟件的原理22 系統(tǒng)需求分析及理論基礎(chǔ)32.1 系統(tǒng)需求分析32.1.1 系統(tǒng)功能需求32.1
7、.2 其他需求32.2 系統(tǒng)開(kāi)發(fā)原理及關(guān)鍵技術(shù)32.2.1 系統(tǒng)開(kāi)發(fā)原理32.2.2 系統(tǒng)運(yùn)行概述32.2.3 系統(tǒng)的關(guān)鍵技術(shù)32.3 系統(tǒng)的開(kāi)發(fā)平臺(tái)42.3.1 eclipse介紹42.3.2 java語(yǔ)言42.3.3 jar命令42.4 編程運(yùn)行環(huán)境63 遠(yuǎn)程監(jiān)控系統(tǒng)系統(tǒng)設(shè)計(jì)63.1 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)和分析63.1.1 主控端的主要功能模塊73.1.2 被監(jiān)控端的主要功能模塊73.2 程序流程及分析73.2.1 被監(jiān)控端啟動(dòng)流程73.2.2 主控端啟動(dòng)流程73.2.3 命令接收和處理流程93.2.4 圖形監(jiān)視線(xiàn)程啟動(dòng)流程93.2.5 遠(yuǎn)程控制流程93.2.6 文件上傳流程104 系統(tǒng)主要模
8、塊設(shè)計(jì)和具體功能實(shí)現(xiàn)114.1 系統(tǒng)主要模塊設(shè)計(jì)114.1.1 消息輸入,命令處理結(jié)果顯示模塊114.1.2 通信模塊實(shí)現(xiàn)114.1.3 命令處理模塊124.2 連續(xù)獲得被監(jiān)控端機(jī)器屏幕變化功能實(shí)現(xiàn)124.2.1 比較幾種屏幕截取方法124.2.2 java“屏幕照相機(jī)”的編寫(xiě)原理124.2.3 java“屏幕照相機(jī)”的實(shí)現(xiàn)124.2.4 遠(yuǎn)程屏幕監(jiān)控的實(shí)現(xiàn)134.2.5 屏幕監(jiān)視功能測(cè)試155 系統(tǒng)運(yùn)行及測(cè)試結(jié)果155.1 測(cè)試方法155.2 測(cè)試環(huán)境165 3 系統(tǒng)運(yùn)行實(shí)例165.3.1 連續(xù)獲得被監(jiān)控端機(jī)器屏幕變化功能165.3.2 實(shí)現(xiàn)被監(jiān)控端硬盤(pán)文件的上傳、下載165.3.3 實(shí)現(xiàn)對(duì)
9、鼠標(biāo)、鍵盤(pán)的模擬175.3.4 實(shí)現(xiàn)在被監(jiān)控端機(jī)器上執(zhí)行任意dos命令185.3.5 遠(yuǎn)程關(guān)機(jī)、遠(yuǎn)程重啟計(jì)算機(jī)18結(jié) 論19參考文獻(xiàn)19致 謝20聲 明211 引 言近年來(lái),隨著計(jì)算機(jī)及網(wǎng)絡(luò)的應(yīng)用普及,千千萬(wàn)萬(wàn)的人們?cè)趭蕵?lè)、通訊、學(xué)習(xí)、工作等各方面都實(shí)現(xiàn)了前所未有的信息化,極大地提高了生活質(zhì)量與工作效率。然而在這種種便利背后,你關(guān)注的人在做什么呢?比如:公司員工。因此,遠(yuǎn)程監(jiān)控發(fā)揮作用了。這里以公司領(lǐng)導(dǎo)為例,遠(yuǎn)程監(jiān)控系統(tǒng)軟件方便了公司領(lǐng)導(dǎo)人管理公司員工。在一個(gè)企業(yè)中,作為公司領(lǐng)導(dǎo)人,一定很擔(dān)心自己的員工利用上班時(shí)間做工作以外的其他事情,也很擔(dān)心他們泄露公司機(jī)密,等等。有了遠(yuǎn)程監(jiān)控,這樣的擔(dān)心就
10、很容易解決,你不用親臨監(jiān)督每個(gè)員工,在自己電腦面前就能對(duì)他們的一舉一動(dòng)了如指掌。遠(yuǎn)程監(jiān)控技術(shù),始于dos時(shí)代,因?yàn)楫?dāng)時(shí)網(wǎng)絡(luò)不發(fā)達(dá),這門(mén)技術(shù)沒(méi)有得到很多重視,但是隨著網(wǎng)絡(luò)的高度發(fā)展,電腦的管理及技術(shù)支持的需要,遠(yuǎn)程監(jiān)控技術(shù)越來(lái)越引起人們的關(guān)注。網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,也為遠(yuǎn)程監(jiān)控技術(shù)的發(fā)展創(chuàng)造了條件。遠(yuǎn)程監(jiān)控軟件一般分兩個(gè)部分:一部分是客戶(hù)端程序client,另一部分是服務(wù)器端程序server,多數(shù)遠(yuǎn)程監(jiān)控軟件把被監(jiān)控端作為服務(wù)器,主控端作為客戶(hù)端??紤]到在監(jiān)控過(guò)程中,如果把主控端作為客戶(hù)端向被監(jiān)控端發(fā)送tcp連接請(qǐng)求,容易被防火墻或者殺毒軟件阻止,監(jiān)控過(guò)程就不能夠成功進(jìn)行。因此,本畢業(yè)設(shè)計(jì)將被監(jiān)控
11、端設(shè)計(jì)為客戶(hù)端,向主控端發(fā)連接請(qǐng)求,建立連接后,主控端向被監(jiān)控端發(fā)送遠(yuǎn)程控制命令,控制被監(jiān)控端電腦中的各種應(yīng)用程序運(yùn)行,被監(jiān)控端對(duì)主控端發(fā)送來(lái)的命令進(jìn)行處理,并將命令處理結(jié)果返回給主控端。遠(yuǎn)程監(jiān)控軟件順應(yīng)時(shí)代發(fā)展的需求,它實(shí)用、使用簡(jiǎn)便,是非常不錯(cuò)的軟件。1.1 遠(yuǎn)程監(jiān)控的背景知識(shí)遠(yuǎn)程監(jiān)控是在網(wǎng)絡(luò)上由一臺(tái)電腦(主控端remote)遠(yuǎn)距離去監(jiān)控另一臺(tái)電腦(被監(jiān)控端host)的技術(shù),這里的遠(yuǎn)程不是字面意思的遠(yuǎn)距離,一般指通過(guò)網(wǎng)絡(luò)監(jiān)控遠(yuǎn)端電腦,不過(guò),大多數(shù)時(shí)候我們所說(shuō)的遠(yuǎn)程監(jiān)控往往指在局域網(wǎng)中的遠(yuǎn)程監(jiān)控而言。當(dāng)操作者使用主控端電腦監(jiān)控被監(jiān)控端電腦時(shí),就如同坐在被監(jiān)控端電腦的屏幕前一樣,可以啟動(dòng)被監(jiān)控
12、端電腦的應(yīng)用程序,可以使用被監(jiān)控端電腦的文件資料,不過(guò),有一個(gè)概念需要明確,那就是主控端電腦只是將鍵盤(pán)和鼠標(biāo)的指令傳送給遠(yuǎn)程電腦,同時(shí)將被監(jiān)控端電腦的屏幕畫(huà)面通過(guò)通信線(xiàn)路回傳過(guò)來(lái)。也就是說(shuō),我們控制被監(jiān)控端電腦進(jìn)行操作似乎是在眼前的電腦上進(jìn)行的,實(shí)質(zhì)是在遠(yuǎn)程的電腦中實(shí)現(xiàn)的,不論打開(kāi)文件,還是上網(wǎng)瀏覽、下載等都是存儲(chǔ)在遠(yuǎn)程的被監(jiān)控端電腦中的。電腦中的遠(yuǎn)程控制技術(shù),始于dos時(shí)代,只不過(guò)當(dāng)時(shí)由于技術(shù)上沒(méi)有什么大的變化,網(wǎng)絡(luò)不發(fā)達(dá),市場(chǎng)沒(méi)有更高的要求,所以遠(yuǎn)程控制技術(shù)沒(méi)有引起更多人的注意。但是,隨著網(wǎng)絡(luò)的高度發(fā)展,電腦的管理及技術(shù)支持的需要,遠(yuǎn)程操作及控制技術(shù)越來(lái)越引起人們的關(guān)注。遠(yuǎn)程控制一般支持下
13、面的這些網(wǎng)絡(luò)方式:lan、wan、撥號(hào)方式、互聯(lián)網(wǎng)方式。此外,有的遠(yuǎn)程控制軟件還支持通過(guò)串口、并口、紅外端口來(lái)對(duì)遠(yuǎn)程機(jī)進(jìn)行控制(不過(guò),這里說(shuō)的遠(yuǎn)程電腦,只能是有限距離范圍內(nèi)的電腦了)。傳統(tǒng)的遠(yuǎn)程控制軟件一般使用netbeui、netbios、ipx/spx、tcp/ip等協(xié)議來(lái)實(shí)現(xiàn)遠(yuǎn)程控制,不過(guò),隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,目前很多遠(yuǎn)程控制軟件提供通過(guò)web頁(yè)面以java技術(shù)來(lái)控制遠(yuǎn)程電腦,這樣可以實(shí)現(xiàn)不同操作系統(tǒng)下的遠(yuǎn)程控制,例如數(shù)技通科技有限公司在就推出了全球第一套基于中文java的跨平臺(tái)遠(yuǎn)程控制軟件易控。1 2 遠(yuǎn)程監(jiān)控軟件的原理遠(yuǎn)程監(jiān)控軟件一般分兩個(gè)部分:一部分是客戶(hù)端程序client,另一部
14、分是服務(wù)器端程序server,由于本畢業(yè)設(shè)計(jì)的通信模塊有別于傳統(tǒng)的遠(yuǎn)程監(jiān)控軟件,在使用前需要將客戶(hù)端程序安裝到被監(jiān)控端電腦上,將服務(wù)器端程序安裝到主控端電腦上。它的控制的過(guò)程是先在被監(jiān)控端電腦上執(zhí)行客戶(hù)端程序,像一個(gè)普通的客戶(hù)一樣向主控端電腦中的服務(wù)器端程序發(fā)出信號(hào),建立一個(gè)特殊的遠(yuǎn)程服務(wù),然后通過(guò)這個(gè)遠(yuǎn)程服務(wù),接收主控端發(fā)送過(guò)來(lái)的遠(yuǎn)程控制命令,并對(duì)命令進(jìn)行處理,最后將命令處理結(jié)果返回給主控端,我們稱(chēng)這種遠(yuǎn)程控制方式為基于遠(yuǎn)程服務(wù)的遠(yuǎn)程控制。通過(guò)遠(yuǎn)程監(jiān)控軟件,我們可以進(jìn)行很多方面的遠(yuǎn)程控制,包括獲取目標(biāo)電腦屏幕圖像、窗口及進(jìn)程列表;記錄并提取遠(yuǎn)端鍵盤(pán)事件(擊鍵序列,即監(jiān)視遠(yuǎn)端鍵盤(pán)輸入的內(nèi)容);
15、可以打開(kāi)、關(guān)閉目標(biāo)電腦的任意目錄并實(shí)現(xiàn)資源共享;提取撥號(hào)網(wǎng)絡(luò)及普通程序的密碼;激活、中止遠(yuǎn)端程序進(jìn)程;管理遠(yuǎn)端電腦的文件和文件夾;關(guān)閉或者重新啟動(dòng)遠(yuǎn)端電腦中的操作系統(tǒng);修改windows注冊(cè)表;通過(guò)遠(yuǎn)端電腦上、下載文件和捕獲音頻、視頻信號(hào)等。前面我們所說(shuō)的是一臺(tái)電腦對(duì)一臺(tái)電腦的情況,其實(shí),基于遠(yuǎn)程服務(wù)的遠(yuǎn)程控制最適合的模式是一對(duì)多,即利用遠(yuǎn)程監(jiān)控軟件,我們可以使用一臺(tái)電腦監(jiān)控多臺(tái)電腦,這就使得我們不必為辦公室的每一臺(tái)電腦都安裝一個(gè)調(diào)制解調(diào)器,而只需要利用辦公室局域網(wǎng)的優(yōu)勢(shì)就可以輕松實(shí)現(xiàn)遠(yuǎn)程多點(diǎn)控制了。在進(jìn)行一臺(tái)電腦對(duì)多臺(tái)遠(yuǎn)端電腦進(jìn)行控制時(shí),我們發(fā)現(xiàn),遠(yuǎn)程監(jiān)控軟件似乎更像一個(gè)局域網(wǎng)的網(wǎng)絡(luò)管理員,
16、而提供遠(yuǎn)程控制的遠(yuǎn)程終端服務(wù)就像極了辦公室局域網(wǎng)的延伸。這種一對(duì)多的連接方式在節(jié)省了調(diào)制解調(diào)器的同時(shí),還使得網(wǎng)絡(luò)的接入更加安全可靠,網(wǎng)絡(luò)管理員也更易于管理局域網(wǎng)上的每一臺(tái)電腦。本文所論述的遠(yuǎn)程監(jiān)控系統(tǒng)就是依照這種方式進(jìn)行的。2 系統(tǒng)需求分析及理論基礎(chǔ)2.1 系統(tǒng)需求分析2.1.1 系統(tǒng)功能需求1連續(xù)獲得被控端機(jī)器屏幕變化。2實(shí)現(xiàn)被控端硬盤(pán)文件的上傳、下載。3實(shí)現(xiàn)對(duì)鼠標(biāo)、鍵盤(pán)的模擬。4實(shí)現(xiàn)在被控端機(jī)器上執(zhí)行任意dos命令。5遠(yuǎn)程關(guān)機(jī)、遠(yuǎn)程重啟計(jì)算機(jī)。2.1.2 其他需求1系統(tǒng)實(shí)用,界面操作簡(jiǎn)便。2被監(jiān)控端自動(dòng)隱藏運(yùn)行。被監(jiān)控端將隨電腦啟動(dòng)而自動(dòng)運(yùn)行,運(yùn)行時(shí)默認(rèn)無(wú)任何可見(jiàn)界面。2.2 系統(tǒng)開(kāi)發(fā)原理
17、及關(guān)鍵技術(shù)2.2.1 系統(tǒng)開(kāi)發(fā)原理本系統(tǒng)是利用類(lèi)java.awt.robot中的屏幕截取和鼠標(biāo)、鍵盤(pán)自動(dòng)控制功能,然后加上網(wǎng)絡(luò)傳輸功能來(lái)完成來(lái)完成截屏和遠(yuǎn)程控制的。2.2.2 系統(tǒng)運(yùn)行概述1啟動(dòng)被監(jiān)控端,打開(kāi)指定的udp端口號(hào)。用于讀取命令。2被監(jiān)控端讀取命令(命令格式為ordername:port)ordername為命令名字,port為主控端打開(kāi)的tcp端口。3接到主控端連接后,被監(jiān)控端就對(duì)當(dāng)前用戶(hù)的桌面采用屏幕截取,然后發(fā)送給主控端。依被監(jiān)控端設(shè)計(jì)的不同,可以設(shè)定屏幕截取的時(shí)間間隔,時(shí)間間隔短一點(diǎn)就可以獲得連續(xù)屏幕變化了。4主控端在畫(huà)布上對(duì)鼠標(biāo)、鍵盤(pán)事件進(jìn)行監(jiān)聽(tīng),被監(jiān)控端重演主控端上的事
18、件5主控端和被監(jiān)控端讀取和發(fā)送數(shù)據(jù),分別來(lái)實(shí)現(xiàn)文件上傳和下載。6在被監(jiān)控端實(shí)現(xiàn)dos命令的執(zhí)行。2.2.3 系統(tǒng)的關(guān)鍵技術(shù)系統(tǒng)使用的關(guān)鍵技術(shù)就是java網(wǎng)絡(luò)編程和java圖形編程。用java網(wǎng)絡(luò)編程實(shí)現(xiàn)主控端和被監(jiān)控端的通訊(命令收發(fā)、數(shù)據(jù)傳送),用java圖形編程完成主控端控制界面的編寫(xiě)。具體應(yīng)用如下:1實(shí)現(xiàn)主控端(服務(wù)器)與被監(jiān)控端(客戶(hù)端)之間的通訊。用java socket來(lái)實(shí)現(xiàn)。2用java采集事件,封裝成消息,用于發(fā)送。在主控端機(jī)器上采集事件(一般只不過(guò)是鍵盤(pán)和鼠標(biāo)的事件),然后封裝成消息類(lèi)傳輸?shù)奖槐O(jiān)控端。3在被監(jiān)控端上重演主控端的動(dòng)作事件。在被監(jiān)控端運(yùn)行client端,接收消息,
19、如果主控端有請(qǐng)求操作的消息,用robot截下當(dāng)前屏幕,傳給主控端,主控端顯示被監(jiān)控端的屏幕,是一個(gè)位圖;然后接收在這個(gè)位圖上的鼠標(biāo)事件和鍵盤(pán)事件,并把鼠標(biāo)位置(位圖上的坐標(biāo)換算成對(duì)應(yīng)的屏幕上的坐標(biāo))和鍵值送到被監(jiān)控端上,在被監(jiān)控端上重演同樣的事件。2.3 系統(tǒng)的開(kāi)發(fā)平臺(tái)jdk1.5.0,eclipse3.1,windows xp professional2.3.1 eclipse介紹eclipse是一種可擴(kuò)展的開(kāi)放源代碼ide。2001年11月,ibm公司捐出價(jià)值4,000萬(wàn)美元的源代碼組建了eclipse聯(lián)盟,并由該聯(lián)盟負(fù)責(zé)這種工具的后續(xù)開(kāi)發(fā)。集成開(kāi)發(fā)環(huán)境(ide)經(jīng)常將其應(yīng)用范圍限定在“開(kāi)
20、發(fā)、構(gòu)建和調(diào)試”的周期之中。為了幫助集成開(kāi)發(fā)環(huán)境 (ide)克服目前的局限性,業(yè)界廠商合作創(chuàng)建了eclipse平臺(tái)。eclipse允許在同一ide中集成來(lái)自不同供應(yīng)商的工具,并實(shí)現(xiàn)了工具之間的互操作性,從而顯著改變了項(xiàng)目工作流程,使開(kāi)發(fā)者可以專(zhuān)注在實(shí)際的嵌入式目標(biāo)上。eclipse為工具開(kāi)發(fā)商提供了更好的靈活性,使他們能更好地控制自己的軟件技術(shù)。eclipse是一個(gè)開(kāi)放源代碼的項(xiàng)目,任何人都可以下載eclipse的源代碼,并且在此基礎(chǔ)上開(kāi)發(fā)自己的功能插件。同時(shí)可以通過(guò)開(kāi)發(fā)新的插件擴(kuò)展現(xiàn)有插件的功能,比如在現(xiàn)有的java開(kāi)發(fā)環(huán)境中加入tomcat服務(wù)器插件。可以無(wú)限擴(kuò)展,而且有著統(tǒng)一的外觀,操作
21、和系統(tǒng)資源管理,這也正是eclipse的潛力所在。2.3.2 java語(yǔ)言java語(yǔ)言是sun公司于1995年5月推出的新一代面向?qū)ο蟮挠?jì)算機(jī)通用編程語(yǔ)言,是繼www之后又一引起世界轟動(dòng)的產(chǎn)品。java語(yǔ)言的特點(diǎn)是跨平臺(tái)和強(qiáng)大的網(wǎng)絡(luò)編程功能。在java語(yǔ)言誕生之前,internet已存在,所以java語(yǔ)言本身就封裝了大量進(jìn)行網(wǎng)絡(luò)編程的類(lèi)庫(kù),使得網(wǎng)絡(luò)編程功能強(qiáng)大,同時(shí)又簡(jiǎn)化了網(wǎng)絡(luò)編程的操作。因此利用java語(yǔ)言可以開(kāi)發(fā)出功能強(qiáng)大的網(wǎng)絡(luò)應(yīng)用程序。2.3.3 jar命令功能:java歸檔工具語(yǔ)法:jar 命令選項(xiàng) manifest destination input-file input-files
22、 jar工具是個(gè)java應(yīng)用程序,可將多個(gè)文件合并為單個(gè)jar歸檔文件。jar是個(gè)多用途的存檔及壓縮工具,它基于zip和zlib壓縮格式。然而,設(shè)計(jì)jar的主要目的是便于將java applet或應(yīng)用程序打包成單個(gè)歸檔文件。將applet或應(yīng)用程序的組件(.class文件、圖像和聲音)合并成單個(gè)歸檔文件時(shí),可以用java代理(如瀏覽器)在一次http事務(wù)處理過(guò)程中對(duì)它們進(jìn)行下載,而不是對(duì)每個(gè)組件都要求一個(gè)新連接。這大大縮短了下載時(shí)間。jar還能壓縮文件,從而進(jìn)一步提高了下載速度。此外,它允許applet的作者對(duì)文件中的各個(gè)項(xiàng)進(jìn)行簽名,因而可認(rèn)證其來(lái)源。jar工具的語(yǔ)法基本上與tar命令的語(yǔ)法相
23、同。命令選項(xiàng):-c:在標(biāo)準(zhǔn)輸出上創(chuàng)建新歸檔或空歸檔。-t:在標(biāo)準(zhǔn)輸出上列出內(nèi)容表。 -xfile:從標(biāo)準(zhǔn)輸入提取所有文件,或只提取指定的文件。如果省略了file,則提取所有文件;否則只提取指定文件。 -f:第二個(gè)參數(shù)指定要處理的jar文件。在-c(創(chuàng)建)情形中,第二個(gè)參數(shù)指的是要?jiǎng)?chuàng)建的jar文件的名稱(chēng)(不是在標(biāo)準(zhǔn)輸出上)。在-t(表(或-x(抽取)這兩種情形中,第二個(gè)參數(shù)指定要列出或抽取的jar文件。-v:在標(biāo)準(zhǔn)錯(cuò)誤輸出設(shè)備上生成長(zhǎng)格式的輸出結(jié)果。 -m:包括指定的現(xiàn)有清單文件中的清單信息。用法舉例:“jar cmf mymanifestfile myjarfile *.class”-0:只儲(chǔ)
24、存,不進(jìn)行 zip 壓縮。 -m:不創(chuàng)建項(xiàng)目的清單文件。 -u:通過(guò)添加文件或更改清單來(lái)更新現(xiàn)有的 jar 文件。例如:“jar -uf foo.jar foo.class”將文件 foo.class 添加到現(xiàn)有的jar文件foo.jar中,而“jar umf manifest foo.jar”則用manifest中的信息更新foo.jar的清單。 -c:在執(zhí)行 jar 命令期間更改目錄。例如:“jar -uf foo.jar -c classes *”將classes目錄內(nèi)的所有文件加到foo.jar中,但不添加類(lèi)目錄本身。程序示例 1:將當(dāng)前目錄下所有class文件打包成新的jar文件:j
25、ar cf file.jar *.class 2:顯示一個(gè)jar文件中的文件列表:jar tf file.jar 3:將當(dāng)前目錄下的所有文件增加到一個(gè)已經(jīng)存在的jar文件中:jar cvf file.jar * 2.4 編程運(yùn)行環(huán)境硬件環(huán)境:cpu: 閃龍2400內(nèi)存:256m硬盤(pán):80g軟件環(huán)境:操作系統(tǒng):windows xp professional應(yīng)用軟件:eclipse3.1 + jdk1.5.0 商業(yè)源代碼,全套計(jì)算機(jī)畢業(yè)設(shè)計(jì)免費(fèi)下載 更多全套設(shè)計(jì)聯(lián)系qq:1042897696最新設(shè)計(jì)大全 3 遠(yuǎn)程監(jiān)控系統(tǒng)系統(tǒng)設(shè)計(jì)3.1 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)和分析本系統(tǒng)設(shè)計(jì)的方案為c/s模式,在主控端電
26、腦上安裝服務(wù)器端程序,在被監(jiān)控端電腦上安裝客戶(hù)端程序。該系統(tǒng)的控制過(guò)程是先在主控端電腦上執(zhí)行服務(wù)器程序,在命令收發(fā)過(guò)程中,主控端向被監(jiān)控端配置的udp端口發(fā)送命令,該命令是一個(gè)控制命令,要求被監(jiān)控端來(lái)連接其開(kāi)啟的tcp端口和要求被監(jiān)控端執(zhí)行的操作,如果被監(jiān)控端監(jiān)聽(tīng)到該udp命令,主動(dòng)開(kāi)啟tcp端口向主控端發(fā)送連接請(qǐng)求。這樣就建立了一個(gè)特殊的遠(yuǎn)程服務(wù),然后通過(guò)這個(gè)遠(yuǎn)程服務(wù),主控端使用各種遠(yuǎn)程控制功能發(fā)送遠(yuǎn)程控制命令,控制被監(jiān)控端電腦中的各種應(yīng)用程序運(yùn)行。系統(tǒng)總體結(jié)構(gòu)如圖1:圖1 系統(tǒng)總體結(jié)構(gòu)圖圖3.1把軟件功能分解到通信的兩個(gè)端點(diǎn)上,即客戶(hù)端和服務(wù)器端,采用clientserver模式。這樣能提
27、高設(shè)計(jì)的靈活性,易于系統(tǒng)的擴(kuò)展。被監(jiān)控端接受主控端命令,并處理命令,然后輸出命令處理結(jié)果;主控端則提供交互界面及命令處理結(jié)果顯示;數(shù)據(jù)交換通道的建立由雙方的數(shù)據(jù)通信模塊負(fù)責(zé)。從而實(shí)現(xiàn)點(diǎn)到點(diǎn)的直接控制監(jiān)控,滿(mǎn)足實(shí)時(shí)性要求。3.1.1 主控端的主要功能模塊主控端包括的模塊有:消息輸入,命令處理結(jié)果顯示模塊,通信模塊。消息輸入模塊負(fù)責(zé)將用戶(hù)界面的事件傳送到通信模塊,通信模塊將命令信息發(fā)送到被監(jiān)控端;被監(jiān)控端執(zhí)行操作后返回的成功或失敗信息交由主控端命令處理結(jié)果顯示模塊根據(jù)信息的格式進(jìn)行顯示。3.1.2 被監(jiān)控端的主要功能模塊被監(jiān)控端包括的模塊有:通信模塊,命令處理模塊。被監(jiān)控端處于偵聽(tīng)狀態(tài),一旦接收到
28、合法的連接請(qǐng)求,就開(kāi)udp端口,并開(kāi)啟命令接受線(xiàn)程,建立連接后,通過(guò)通信模塊接收主控端發(fā)來(lái)的命令信息,經(jīng)命令處理模塊解釋后,并將結(jié)果返回到主控端。3.2 程序流程及分析3.2.1 被監(jiān)控端啟動(dòng)流程在被監(jiān)控端安裝客戶(hù)端程序,程序啟動(dòng)的時(shí)候,嘗試開(kāi)啟udp端口,如果防火墻或者殺毒軟件阻止,嘗試開(kāi)啟配置的其它udp端口,如果都嘗試完畢,啟動(dòng)失敗。否則,將開(kāi)啟的udp套接字傳入,然后開(kāi)啟命令接收線(xiàn)程,目的是進(jìn)行命令獲取,并對(duì)獲取的命令進(jìn)行處理。然后將自己復(fù)制到自啟動(dòng)項(xiàng),并改名為explorer.jar. 流程如圖2。圖2 被監(jiān)控端啟動(dòng)流程3.2.2 主控端啟動(dòng)流程在主控端安裝服務(wù)器程序,主控端首先啟動(dòng)
29、其控制窗口類(lèi),初始化圖形在主控端安裝服務(wù)器程序,主控端首先啟動(dòng)其控制窗口類(lèi),初始化圖形顯示,然后用戶(hù)輸入被監(jiān)控端的ip地址。接著主控端開(kāi)啟任意tcp端口,并向該ip配置的udp端口發(fā)送初始化命令(命令格式為ordername:port),ordername為命令名字,port為主控端打開(kāi)的tcp端口號(hào)。主控端對(duì)開(kāi)啟的tcp端口進(jìn)行監(jiān)聽(tīng),如果超時(shí),連接失敗。否則,主控端讀取被監(jiān)控端的狀態(tài)對(duì)象,接著啟動(dòng)控制模塊和屏幕監(jiān)視模塊。流程如圖3。圖3 主控端啟動(dòng)流程圖4 命令接受和處理流程3.2.3 命令接收和處理流程被監(jiān)控端udp端口啟動(dòng)成功后,就開(kāi)始對(duì)該udp端口進(jìn)行監(jiān)聽(tīng),如果監(jiān)聽(tīng)到有命令,就讀取它,
30、并判斷命令是否有效,命令以ordername:port為格式,如果無(wú)效,返回繼續(xù)讀取命令,否則,調(diào)用相應(yīng)的命令處理模塊對(duì)命令進(jìn)行處理,命令處理完后將處理結(jié)果返回給主控端。流程如圖4。3.2.4 圖形監(jiān)視線(xiàn)程啟動(dòng)流程主控端開(kāi)啟任意tcp端口,向被監(jiān)控端的udp端口發(fā)送“要求被監(jiān)控端連接”的udp命令,命令形式為screen:tcp port。如果命令超時(shí),命令執(zhí)行失敗,否則,如果被監(jiān)視端來(lái)連接,生成soket對(duì)象,從soket中讀取被監(jiān)視端發(fā)送過(guò)來(lái)的圖形對(duì)象,并將圖象顯示在畫(huà)布上,每隔一定時(shí)間(若干秒),重新讀取圖象,更新畫(huà)布顯示,從而實(shí)現(xiàn)連續(xù)獲得對(duì)方屏幕變化。流程如圖5。圖5 圖形監(jiān)視線(xiàn)程啟動(dòng)
31、流程3.2.5 遠(yuǎn)程控制流程被監(jiān)控端收到主控端的udp命令:control:tcp port,獲得主控端開(kāi)放的tcp端口號(hào)。成功連接主控端的tcp端口后,并從中讀取事件對(duì)象,接著對(duì)事件對(duì)象進(jìn)行類(lèi)型判斷,如果是鍵盤(pán)事件,就對(duì)鍵盤(pán)事件重演;如果是鼠標(biāo)事件,就對(duì)鼠標(biāo)事件重演。接著判定控制套接是否關(guān)閉,如果關(guān)閉,控制結(jié)束。否則返回繼續(xù)讀取事件。流程如圖6。圖6 遠(yuǎn)程控制流程3.2.6 文件上傳流程主控端開(kāi)啟任意tcp端口,向被監(jiān)控端發(fā)送文件上傳命令,命令格式為:fileup:tcp port。如果命令超時(shí),文件上傳失敗,否則,主控端讀取文件數(shù)據(jù)并發(fā)送,發(fā)送過(guò)程中如果i/o錯(cuò)誤,文件上傳失敗,否則,進(jìn)行
32、文件是否讀取完判斷,如果讀取完,則上傳成功,否則,繼續(xù)讀取文件數(shù)據(jù)。流程如圖7。圖7 文件上傳流程4 系統(tǒng)主要模塊設(shè)計(jì)和具體功能實(shí)現(xiàn)4.1 系統(tǒng)主要模塊設(shè)計(jì)4.1.1 消息輸入,命令處理結(jié)果顯示模塊主控端消息輸入,顯示模塊的開(kāi)發(fā)采用java圖形編程,利用模塊化、通用性強(qiáng)的特點(diǎn),實(shí)現(xiàn)遠(yuǎn)程監(jiān)控中用戶(hù)控制界面的編寫(xiě)。商業(yè)源代碼,全套計(jì)算機(jī)畢業(yè)設(shè)計(jì)免費(fèi)下載 更多全套設(shè)計(jì)聯(lián)系qq:1042897696最新設(shè)計(jì)大全 4.1.2 通信模塊實(shí)現(xiàn)1socket編程數(shù)據(jù)通信模塊中的數(shù)據(jù)通道建立采用socket編程。socket支持tcpip協(xié)議網(wǎng)絡(luò)通信的基本操作;它屏蔽了網(wǎng)絡(luò)底層的通信細(xì)節(jié),使編程簡(jiǎn)單;它對(duì)通信端
33、點(diǎn)進(jìn)行了抽象,提供發(fā)送和接收數(shù)據(jù)機(jī)制及打開(kāi)、計(jì)算和關(guān)閉會(huì)話(huà)的能力。本項(xiàng)目中,客戶(hù)端和服務(wù)器代表運(yùn)行在windows操作平臺(tái)下,采用java socket來(lái)編程實(shí)現(xiàn)命令和數(shù)據(jù)信息的傳輸。2通信建立服務(wù)器與客戶(hù)端開(kāi)始都必須調(diào)用socket()函數(shù)產(chǎn)生一個(gè)socket套接字。由于讓被監(jiān)控端開(kāi)tcp端口,很容易被防火墻和殺毒軟件阻止,監(jiān)控就難以完成。這里,我們?cè)谥骺囟碎_(kāi)tcp端口,等待被監(jiān)控端來(lái)主動(dòng)連接,這樣監(jiān)控功能就能更順利的開(kāi)始。主控端首先創(chuàng)建一個(gè)serversocket對(duì)象,然后調(diào)用serversocket的方法accept實(shí)現(xiàn)監(jiān)聽(tīng)。如果被監(jiān)控端來(lái)訪(fǎng)問(wèn),accept會(huì)返回一個(gè)socket對(duì)象,利
34、用這個(gè)對(duì)象就可以很輕松的完成服務(wù)器和客戶(hù)端的數(shù)據(jù)交換。只有被監(jiān)控端有請(qǐng)求時(shí)才建立連接,建立連接后,客戶(hù)端與服務(wù)器之間便可以雙向傳輸數(shù)據(jù)。當(dāng)?shù)玫絪ocket對(duì)象后,主控端建立objectinputstream對(duì)象,被監(jiān)控端建立objectoutputstream對(duì)象實(shí)現(xiàn)消息的接收和發(fā)送。完成通信后,調(diào)用serversocket和socket對(duì)象的close關(guān)閉套接字,結(jié)束通信。主控端主要通信代碼:serversocket server=newradomsocket.opennewport(); /開(kāi)啟新端口socket socket=null;server.setsotimeout(parame
35、ter.tcp_time_out); /設(shè)置超時(shí)socket=server.accept(); /開(kāi)啟objectinputstream readin=new objectinputstream(socket.getinputstream(); /封裝流,準(zhǔn)備讀取一個(gè)對(duì)象socket.close(); /關(guān)閉socket,結(jié)束通信被監(jiān)控端主要通信代碼:socket socket=new socket(serverip, serverport);objectoutputstream send=new objectoutputstream(socket.getoutputstream();/封裝流
36、send.writeobject(cc); /發(fā)送send.close(); /關(guān)閉流socket.close(); /關(guān)閉套接4.1.3 命令處理模塊命令處理模塊的實(shí)現(xiàn)就是通過(guò)函數(shù)調(diào)用,調(diào)用各個(gè)命令處理類(lèi)。在命令處理模塊中,被監(jiān)控端執(zhí)行以下操作:發(fā)送自己的狀態(tài)信息給主控端;建立圖象傳送;開(kāi)啟控制命令套接字;文件上傳;文件下載;執(zhí)行dos命令,獲取執(zhí)行結(jié)果和錯(cuò)誤流。4.2 連續(xù)獲得被監(jiān)控端機(jī)器屏幕變化功能實(shí)現(xiàn)4.2.1 比較幾種屏幕截取方法在java遠(yuǎn)程監(jiān)控過(guò)程中,我們要截取軟件運(yùn)行g(shù)ui界面,并將其保存到一個(gè)或一系列圖像文件中。目前,在windows平臺(tái)下,有關(guān)屏幕截取的工具軟件有許多,比如
37、:hypercam等,當(dāng)然還可以直接利用windows操作系統(tǒng)支持的屏幕拷貝print screen鍵,將屏幕拷貝到剪貼板,在保存為圖像文件。這些工具軟件一定要屏幕截取者,在操作過(guò)程中要精力集中并且伺機(jī)捕獲所需要的軟件運(yùn)行界面。事實(shí)上,有時(shí)候我們需要java應(yīng)用程序,自動(dòng)對(duì)運(yùn)行的gui界面進(jìn)行拍照,比如:一臺(tái)計(jì)算機(jī)要獲取網(wǎng)絡(luò)上另一臺(tái)計(jì)算機(jī)正在運(yùn)行的gui界面,要看看對(duì)方計(jì)算機(jī)上軟件運(yùn)行情況。這就需要在java應(yīng)用程序中,自動(dòng)將運(yùn)行的gui界面保存到一個(gè)圖像文件中,然后通過(guò)網(wǎng)絡(luò)傳輸?shù)搅硪慌_(tái)計(jì)算機(jī)上。而上述hypercam等工具軟件無(wú)法與我們的java應(yīng)用融合為一體。因此,我們需要在java應(yīng)用程
38、序中編寫(xiě)一個(gè)屏幕照相機(jī)。4.2.2 java“屏幕照相機(jī)”的編寫(xiě)原理屏幕的截取是比較接近操作系統(tǒng)底層的操作,在windows平臺(tái)下,該操作似乎成了vc、vb等語(yǔ)言開(kāi)發(fā)的專(zhuān)利。事實(shí)上,屏幕的截取在java應(yīng)用程序中,及其簡(jiǎn)單。在java jdk1.5.0 中提供了一個(gè)機(jī)器人robot類(lèi)。該類(lèi)用于產(chǎn)生與本地操作系統(tǒng)有關(guān)的底層輸入、測(cè)試應(yīng)用程序運(yùn)行或自動(dòng)控制應(yīng)用程序運(yùn)行。robot類(lèi)提供了一個(gè)方法:.createscreencapture(.),可以直接將全屏幕或某個(gè)屏幕區(qū)域的像素拷貝到一個(gè)bufferedimage對(duì)象中,我們只需要將該對(duì)象寫(xiě)入到一個(gè)圖像文件之中,就完成了屏幕到圖像的拷貝過(guò)程。4.
39、2.3 java“屏幕照相機(jī)”的實(shí)現(xiàn)為了構(gòu)造一個(gè)比較完善的java屏幕照相機(jī),我們構(gòu)造了一個(gè)imageprovider javabean,其源代碼和說(shuō)明如下:/* 該javabean可以直接在其他java應(yīng)用程序中調(diào)用,實(shí)現(xiàn)屏幕的拍照 */public class imageprovider private robot robot=null; /圖象采集類(lèi)private rectangle rect=null; /要復(fù)制的 屏幕區(qū)域/* 構(gòu)造函數(shù),輸入要采集的屏幕的 矩形信息*/public imageprovider() throws awtexceptionrect=new rectang
40、le(toolkit.getdefaulttoolkit().getscreensize(); /要復(fù)制的屏幕區(qū)域,這里為全屏robot=new robot(); /創(chuàng)建robot對(duì)象/* 復(fù)制全屏幕,返回bufferedimage對(duì)象 */public bufferedimage copyscreen()bufferedimage image=robot.createscreencapture(rect); /截取屏幕,生成bufferedimage對(duì)象return image;4.2.4 遠(yuǎn)程屏幕監(jiān)控的實(shí)現(xiàn)實(shí)現(xiàn)屏幕監(jiān)控要完成被監(jiān)控端發(fā)送屏幕截圖和主控端接收?qǐng)D片的工作,該功能的實(shí)現(xiàn)中構(gòu)造了兩
41、個(gè)類(lèi):sendimage thread和getimagethread,類(lèi)圖分別為圖8和圖9。圖8 sendimage thread類(lèi)圖sendimage thread javabean 代碼和說(shuō)明如下:/*被監(jiān)控端將java屏幕照相機(jī)采集到的圖片壓縮為jpeg文件,發(fā)送到主控端*/public class sendimagethread extends thread。(部分代碼略去)public void run() int i=0; outputstream out=null; jpegimageencoder encoder=null; /壓縮為jpegtry out = client.g
42、etoutputstream(); /獲得tcp套接字流 encoder=jpegcodec.createjpegencoder(out);/將流壓縮為jpeg對(duì)象流 catch (ioexception e1) e1.printstacktrace(); while(true) image=impv.copyscreen(); /截取屏幕圖象 encoder.encode(image) ; /向網(wǎng)絡(luò)寫(xiě)入jpeg圖形對(duì)象圖9 getimage thread類(lèi)圖getimage thread javabean 代碼和說(shuō)明如下:/*主控端接收jpeg文件,并在畫(huà)布上顯示*/public class
43、 getimagethread extends thread。(部分代碼略去)public void run() bufferedimage image=null;jpegimagedecoder de=null;inputstream in=null;try socket.setreceivebuffersize(1024); /設(shè)置接收緩沖 socket.setsotimeout(60000); /設(shè)置tcp過(guò)期時(shí)間 in=socket.getinputstream(); /獲取套接字輸入流de=jpegcodec.createjpegdecoder(in); /將輸入流封裝為jpeg對(duì)象
44、流 catch (ioexception e) / todo auto-generated catch block e.printstacktrace(); int wrongtime=0; while(true) wrongtime+; if(wrongtime=200)break;image=de.decodeasbufferedimage(); /對(duì)jpeg對(duì)象解碼,還原為bufferedimage圖形對(duì)象 mainframe.getinstance().showimage(image); /在控制窗口的畫(huà)布上顯示圖象 4.2.5 屏幕監(jiān)視功能測(cè)試在系統(tǒng)實(shí)現(xiàn)過(guò)程中,成功完成了連續(xù)獲得被監(jiān)控端機(jī)器屏幕變化的功能,下面為測(cè)試圖片:圖10 屏幕監(jiān)視圖片本節(jié)詳細(xì)介紹了遠(yuǎn)程屏幕監(jiān)視的功能實(shí)現(xiàn)。對(duì)于功能需求中的其他功能,這里就不逐一介紹了。對(duì)于遠(yuǎn)程控制功能,如果要實(shí)現(xiàn)該功能,首先需要主控端向被監(jiān)控端發(fā)送遠(yuǎn)程控制命令,被監(jiān)控端收到命令后,首先返回給主控端一個(gè)包含被監(jiān)控端屏幕分辨率等的狀態(tài)信息,主控端根據(jù)狀態(tài)信息更新本機(jī)所存的被控端狀態(tài),并調(diào)整畫(huà)布大小,使其比例符合被
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度快遞公司司機(jī)勞務(wù)雇傭服務(wù)范本2篇
- 二零二五年度農(nóng)業(yè)科技委托推廣合作協(xié)議書(shū)3篇
- 二零二五版碼頭設(shè)備維護(hù)保養(yǎng)與改造工程合同6篇
- 二零二五年度離婚手續(xù)辦理及婚姻解除后子女監(jiān)護(hù)權(quán)爭(zhēng)議解決合同3篇
- 二零二五年版投資代持業(yè)務(wù)風(fēng)險(xiǎn)控制協(xié)議3篇
- 二零二五年度個(gè)人汽車(chē)消費(fèi)反擔(dān)保合同范本3篇
- 二零二五年度個(gè)人光伏發(fā)電貸款財(cái)產(chǎn)抵押擔(dān)保協(xié)議3篇
- 二零二五版土地居間服務(wù)合同范本:生態(tài)環(huán)保用地合作開(kāi)發(fā)3篇
- 二零二五年度機(jī)械設(shè)備購(gòu)銷(xiāo)合同模板6篇
- 二零二五版智能設(shè)備信用擔(dān)保租賃協(xié)議3篇
- 電力通信光纜檢修標(biāo)準(zhǔn)化作業(yè)指導(dǎo)書(shū)
- 2024年全國(guó)統(tǒng)一考試高考新課標(biāo)Ⅱ卷數(shù)學(xué)試題(真題+答案)
- 2024山西省文化旅游投資控股集團(tuán)有限公司招聘筆試參考題庫(kù)附帶答案詳解
- 加油站廉潔培訓(xùn)課件
- 2023屆上海市松江區(qū)高三下學(xué)期二模英語(yǔ)試題(含答案)
- 《民航服務(wù)溝通技巧》教案第16課民航服務(wù)人員平行溝通的技巧
- 深圳市物業(yè)專(zhuān)項(xiàng)維修資金管理系統(tǒng)操作手冊(cè)(電子票據(jù))
- 2023年鐵嶺衛(wèi)生職業(yè)學(xué)院高職單招(數(shù)學(xué))試題庫(kù)含答案解析
- 起重機(jī)械安裝吊裝危險(xiǎn)源辨識(shí)、風(fēng)險(xiǎn)評(píng)價(jià)表
- 華北理工兒童口腔醫(yī)學(xué)教案06兒童咬合誘導(dǎo)
- 中國(guó)建筑項(xiàng)目管理表格
評(píng)論
0/150
提交評(píng)論