freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于c遠(yuǎn)程控制系統(tǒng)的設(shè)計(jì)畢業(yè)論文(編輯修改稿)

2025-07-19 01:17 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 me[1024]。 DWORD dwCount = 1024。 CString csSend = connect|。 csSendBuff = 。 dwCurSend = 0。 ::GetComputerName(chName, amp。dwCount)。//取計(jì)算機(jī)名 chName[dwCount] = 0。 csSend += chName。 csSend = csSend + | + pMainWndm_RemoFace + | + pMainWndm_RemoGruop + |。 dwCount = 1024。 ::GetUserName(chName, amp。dwCount)。//取登陸用戶名 chName[dwCount] = 0。 csSend += chName。 MySendTo(csSend)。//發(fā)送登陸信息 } CAsyncSocket::OnConnect(nErrorCode)。} 系統(tǒng)各模塊界面設(shè)計(jì)及其實(shí)現(xiàn) 屏幕監(jiān)控模塊 服務(wù)端向客戶端第一次發(fā)送獲取屏幕命令時(shí),客戶端并非立刻截屏然后將數(shù)據(jù)發(fā)送服務(wù)端,考慮到多個(gè)客戶端的屏幕分辨率大小不一致的情況下,客戶端首次收到服務(wù)端的屏幕監(jiān)控命令后,應(yīng)先將客戶端當(dāng)前屏幕分辨率發(fā)送給服務(wù)端,服務(wù)端在窗口上創(chuàng)建一個(gè)矩形區(qū)域用于顯示客戶端桌面圖片,然后才是屏幕數(shù)據(jù)的傳輸,由于客戶端不停的發(fā)送屏幕數(shù)據(jù),為了能使服務(wù)端區(qū)分每一幀的屏幕,客戶端在發(fā)送屏幕數(shù)據(jù)前,在屏幕數(shù)據(jù)尾部添加10個(gè)字節(jié)自定義的數(shù)據(jù)包,服務(wù)端在每次接收數(shù)據(jù)后都會(huì)檢驗(yàn)數(shù)據(jù)包尾部是不是自定義的數(shù)據(jù)包,如果是在表示一幀圖片傳輸完畢??蛻舳税l(fā)送屏幕數(shù)據(jù)的代碼見附錄。服務(wù)端接收到客戶端桌面圖片數(shù)據(jù)后,此時(shí)還不能將圖片直接畫到窗口上,因?yàn)閳D片數(shù)據(jù)發(fā)送前是經(jīng)過壓縮的,因此應(yīng)先解壓,再將解壓后的圖片畫到窗口上,然后再發(fā)送請(qǐng)求下一幀桌面圖片的請(qǐng)求。屏幕傳輸代碼見附錄。 整個(gè)屏幕傳輸流程圖如圖51:發(fā)送截屏命令解析命令截屏使用CxImage庫(kù)將BMP數(shù)據(jù)轉(zhuǎn)換成JPEG使用zlib庫(kù)將JPEG圖片進(jìn)一步壓縮在壓縮后的數(shù)據(jù)尾部添加10個(gè) 自定義數(shù)據(jù)包發(fā)送數(shù)據(jù)接收數(shù)據(jù)是數(shù)據(jù)包尾嗎?是否使用zlib庫(kù)將數(shù)據(jù)包解壓顯示圖片服務(wù)端客戶端停止傳輸嗎?停止傳輸是否圖51 屏幕傳輸流程圖 文件操作模塊該模塊界面設(shè)計(jì)如圖52所示:圖52 文件傳輸界面CAsyncSocket是異步非阻塞類,在文件傳輸過程中,Send()函數(shù)一調(diào)用就立刻返回,因此發(fā)送端常常無法知道接收端是否已經(jīng)接收到完整數(shù)據(jù),在此算法設(shè)計(jì)中,可以將接收端當(dāng)前接收的總數(shù)據(jù)量大小發(fā)送給發(fā)送端,發(fā)送端則可以用此來比較客戶端是否已經(jīng)接收完全。文件傳輸?shù)拇a見附錄。 命令操作模塊系統(tǒng)注冊(cè)表、服務(wù)、進(jìn)程操作是服務(wù)端向客戶端發(fā)送相應(yīng)命令,然后客戶端根據(jù)不同命令執(zhí)行不同操作,如:枚舉注冊(cè)表、系統(tǒng)服務(wù)等,然后將枚舉出的信息以文本形式發(fā)送到服務(wù)端,服務(wù)端再將信息顯示到界面上。 1. 枚舉客戶端進(jìn)程模塊界面設(shè)計(jì)如圖53所示:圖53 枚舉客戶端進(jìn)程模塊界面 要對(duì)一個(gè)任意進(jìn)程(包括系統(tǒng)安全進(jìn)程和服務(wù)進(jìn)程)進(jìn)行指定了寫相關(guān)的訪問權(quán)的OpenProcess操作,只要當(dāng)前進(jìn)程具有SeDeDebug權(quán)限就可以了。要是一個(gè)用戶是Administrator或是被給予了相應(yīng)的權(quán)限,就可以具有該權(quán)限。可是,就算用Administrator帳號(hào)對(duì)一個(gè)系統(tǒng)安全進(jìn)程執(zhí)行OpenProcess還是會(huì)遇到“訪問拒絕”的錯(cuò)誤。原來在默認(rèn)的情況下進(jìn)程的一些訪問權(quán)限是沒有被使能(Enabled)的,所以要做的首先是使能這些權(quán)限。與此相關(guān)的一些API函數(shù)有OpenProcessToken、LookupPrivilegevalue、AdjustTokenPrivileges?,F(xiàn)在要修改一個(gè)進(jìn)程的訪問令牌,首先要獲得進(jìn)程訪問令牌的句柄,這可以通過OpenProcessToken得到??蛻舳诉M(jìn)程提權(quán)代碼如下:bool MyMproveProcPriv(){ HANDLE token。if(!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,amp。token)) return FALSE。 TOKEN_PRIVILEGES tkp。 = 1。 // 獲得 SE_DEBUG_NAME 特權(quán) ::LookupPrivilegeValue(NULL,SE_DEBUG_NAME,amp。[0].Luid)。 [0].Attributes = SE_PRIVILEGE_ENABLED。 if(!AdjustTokenPrivileges(token,FALSE,amp。tkp,sizeof(tkp),NULL,NULL)) { return FALSE。 } CloseHandle(token)。 return TRUE。} 枚舉客戶端系統(tǒng)進(jìn)程核心代碼如下:CString MyGetProcess(){CString csTemp = , csPid。HANDLE hSnapshot, mehandle。hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)。PROCESSENTRY32 pe。MODULEENTRY32 me。 = sizeof(PROCESSENTRY32)。Process32First(hSnapshot, amp。pe)。do{mehandle=CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, )。 = sizeof(MODULEENTRY32)。Module32First(mehandle, amp。me)。(%d, )。if ( == 0)csTemp = csTemp + + * + csPid + *System + | 。elsecsTemp = csTemp + + * + csPid + * + + | 。CloseHandle(mehandle)。}while(Process32Next(hSnapshot, amp。pe))。CloseHandle(hSnapshot)。return csTemp。} 2. 枚舉客戶端系統(tǒng)服務(wù)模塊界面設(shè)計(jì)如圖54所示:圖54 枚舉客戶端系統(tǒng)服務(wù)模塊界面在對(duì)服務(wù)進(jìn)行管理設(shè)置前,需要以相應(yīng)的權(quán)限打開服務(wù),可通過下面兩個(gè)API實(shí)現(xiàn)SC_HANDLE OpenSCManager( LPCTSTR lpMachineName, // pointer to machine name string LPCTSTR lpDatabaseName, // pointer to database name string DWORD dwDesiredAccess // type of access)。SC_HANDLE OpenService( SC_HANDLE hSCManager, // handle to service control manager database LPCTSTR lpServiceName, // pointer to name of service to start DWORD dwDesiredAccess // type of access to service)。而想要對(duì)服務(wù)進(jìn)行設(shè)置就需要知道服務(wù)的當(dāng)前信息,對(duì)我們有用的通常是以下幾項(xiàng):服務(wù)名稱,顯示名稱,啟動(dòng)狀態(tài),啟動(dòng)方式,程序路徑等。這些信息我們可以通過API函數(shù)EnumServicesStatus來實(shí)現(xiàn),該函數(shù)會(huì)將以上信息放入一個(gè)結(jié)構(gòu)體LPENUM_SERVICE_STATUS中。枚舉系統(tǒng)服務(wù)核心代碼如下:CString MyGetService(){ LPENUM_SERVICE_STATUS lpServices = NULL。 LPQUERY_SERVICE_CONFIG ServicesInfo = NULL。 DWORD nSize = 0, n, nResumeHandle = 0。 CString csResult = 。 SC_HANDLE scm, service。 scm = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS)。 if(scm == NULL) return 。 lpServices = (LPENUM_SERVICE_STATUS) LocalAlloc(LPTR, 64 * 1024)。 EnumServicesStatus(scm, SERVICE_WIN32, SERVICE_STATE_ALL, (LPENUM_SERVICE_STATUS)lpServices, 64 * 1024, amp。nSize, amp。n, amp。nResumeHandle)。 ServicesInfo = (LPQUERY_SERVICE_CONFIG) LocalAlloc(LPTR, 4 * 1024)。 for (DWORD i = 0。 i n。 i++) { csResult = csResult + lpServices[i].lpServiceName + * 。 DWORD nResumeHandle = 0。 service=OpenService(scm,lpServices[i].lpServiceName, SERVICE_ALL_ACCESS)。 if (!service) continue 。 QueryServiceConfig(service, ServicesInfo, 4 * 1024, amp。nResumeHandle)。//枚舉各個(gè)服務(wù)信息 CloseServiceHandle(service)。 } CloseServiceHandle(scm)。 LocalFree((HLOCAL)lpServices)。 LocalFree((HLOCAL)ServicesInfo)。 return csResult。} 3. 枚舉客戶端注冊(cè)表模塊界面設(shè)計(jì)如圖55所示:圖55 枚舉客戶端注冊(cè)表模塊界面 對(duì)于注冊(cè)表的操作,首先通過調(diào)用RegOpenKey函數(shù)打開某一注冊(cè)表項(xiàng),然后執(zhí)行RegSetValueEx或RegQueryValueEx進(jìn)行對(duì)該注冊(cè)表項(xiàng)的讀寫。枚舉客戶端注冊(cè)表核心代碼如下:CString MyGetAllRegKeyValue(HKEY MainKey, CString KeyName){ DWORD dwIndex = 0, dwSize = 1024, dwType = REG_SZ。 char chKeyName[1024]。 CString csRes = 。 HKEY hkKey。 if (::RegOpenKey(MainKey, KeyName, amp。hkKey) != ERROR_SUCCESS) return 。 while(::RegEnumValue(hkKey, dwIndex, chKeyName, amp。dwSize, 0, amp。dwType, NULL, NULL) == ERROR_SUCCESS) { char chKeyValue[1024]。 DWORD dwTxtSize = 1024。 if (::RegQueryValueEx(hkKey, chKeyName, NULL, amp。dwType, (LPBYTE)chKeyValue, amp。dwTx
點(diǎn)擊復(fù)制文檔內(nèi)容
外語(yǔ)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1