資源描述:
《帶你邁上專業(yè)軟件開發(fā)第一步:遠程屏幕監(jiān)視軟件的設計與實現(xiàn)》由會員上傳分享,免費在線閱讀,更多相關內容在應用文檔-天天文庫。
1、帶你邁上專業(yè)軟件開發(fā)第一步:遠程屏幕監(jiān)視軟件的設計與實現(xiàn)~教育資源庫 圖片看不清楚?請點擊這里查看原圖(大圖)?! ∵m合讀者:編程愛好者、黑客工具愛好者 前置知識:BorlandC++Builder6.0基本使用方法 Socket:本文主要介紹了遠程屏幕監(jiān)視軟件EagleEye的開發(fā)與設計過程。逐一介紹了比較正規(guī)的專業(yè)程序開發(fā)步驟:需求分析、功能設計與實現(xiàn)、軟件測試運行。在功能設計中用程序流程圖 適合讀者:編程愛好者、黑客工具愛好者 前置知識:BorlandC++Builder6.0基本使用方法 Socket:本文主要介紹了遠程屏幕監(jiān)視
2、軟件EagleEye的開發(fā)與設計過程。逐一介紹了比較正規(guī)的專業(yè)程序開發(fā)步驟:需求分析、功能設計與實現(xiàn)、軟件測試運行。在功能設計中用程序流程圖展現(xiàn)了程序執(zhí)行的具體過程。在功能實現(xiàn)中詳細的展現(xiàn)了系統(tǒng)的各個功能模塊、所需的VCL類和自定義的相關類,給出了實現(xiàn)相應的功能的函數(shù)及代碼,文章的最后還給出了本軟件的主要功能源代碼。我們推出這樣的文章是想讓大家真正了解到專業(yè)程序開發(fā)的流程和詳細的步驟分析,或許這個文章就能讓無數(shù)新手邁進專業(yè)程序開發(fā)的第一步呢?! 帶你邁上專業(yè)軟件開發(fā)第一步:遠程屏幕監(jiān)視軟件的設計與實現(xiàn) 文/圖liuyit 通過21天的編寫,遠
3、程輔助類工具軟件EagleEye基本編寫完畢,能夠完成多窗口多種方式(可以選擇截圖或實時監(jiān)視的方式)同時監(jiān)視多臺遠程計算機,可以實現(xiàn)對本地計算機上顯示的遠程屏幕圖像的實行存儲,可以將圖像拷貝到剪貼板,并且用戶可以設定監(jiān)視時間、監(jiān)視方式,可以選擇程序的運行方式(可以是正常模式,也可以使程序隱藏于后臺運行)。完全實現(xiàn)了我最初的設想。心情不錯,于是急忙拿出來和廣大的黑防讀者們一起共享,共同富裕嘛! 開發(fā)環(huán)境和功能分析 遠程屏幕監(jiān)視作為我自主編寫的遠程控制軟件的一個模塊,我將其獨立分割出來發(fā)布測試,軟件要求能實現(xiàn)分屏同時監(jiān)視遠程主機。大體的開發(fā)環(huán)境是:
4、 操作系統(tǒng):())?! 。?)圖像重繪:使用Image控件將從遠程主機發(fā)送到的JPGE圖像顯示?! ?.服務端(Server) ?。?)服務端(Server)功能的實現(xiàn)。使用C++Builder的SocketServer控件編寫軟件的服務端(Server)。監(jiān)聽本地計算機指定端口,接受由客戶端發(fā)送至的相關參數(shù),將參數(shù)傳遞給屏幕圖像截取模塊?! 。?)屏幕圖像截取與傳輸步驟:讀取取得桌面的矩形區(qū)域范圍Get()實現(xiàn))?! 〕绦蛄鞒虉D1234下一頁友情提醒:,特別! 圖片看不清楚?請點擊這里查看原圖(大圖)?! ?shù)據(jù)結構與算法 在此對實現(xiàn)主要功能
5、的類和方法做出說明,對由IDE所生成的與可視化控件相關的方法在此不予詳細說明。同時為配合新手學習,代碼后附詳細功能> { LONGp;capRect); break; caseCM_ACTIVEemoryStream*Stream; try{ for(inti=1;i<=(ConfigForm->times);i++)//進入循環(huán),不斷獲得遠程桌面圖像 { //定義一個數(shù)據(jù)流并分配內存 Stream=neoryStream; TJPEGImage*jpeg; //定義JPEG圖象 try{
6、jpeg=neage; //分配內存 intRecvSocket=BindSocket(RecvPort);//動態(tài)分配接收端口 if(RecvSocket) { //將接收端口和色深、圖象品質合成一條命令,參數(shù)之間以n分隔 AnsiStringMsg=IntToStr(RecvPort)+n+IntToStr(CL)+n+IntToStr(CQ)+n; Application->ProcessMessages(); //處理系統(tǒng)消息 //向遠程主機發(fā)送命令 if(SendMsg(RemoteAddress,LISTENPORT
7、,Msg)) {//開始接收圖象到數(shù)據(jù)流中 if(RecvStream(RecvSocket,Stream)) { StatusBar->SimpleText=正在接收數(shù)據(jù)...; //從數(shù)據(jù)流中載入圖象 jpeg->LoadFromStream(Stream);//顯示圖象 Image1->Picture->Bitmap->Assign(jpeg); //MessageBeep(MB_OK); //發(fā)出提示聲音,返回值為TRUE,表示成功 bRtn=true;} else MessageBox(
8、0,接收數(shù)據(jù)流失敗,EagleEye,MB_ICONERROR);} 后期程序測試 軟件運行界面如圖1所示:上一頁12