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

正文內(nèi)容

網(wǎng)絡(luò)虛擬實(shí)驗(yàn)平臺的構(gòu)建與測試-資料下載頁

2025-03-25 07:19本頁面
  

【正文】 HookWH_MOUSE Hook監(jiān)視從GetMessage 或者 PeekMessage 函數(shù)返回的鼠標(biāo)消息。使用這個(gè)Hook監(jiān)視輸入到消息隊(duì)列中的鼠標(biāo)消息。1WH_MOUSE_LL HookWH_MOUSE_LL Hook監(jiān)視輸入到線程消息隊(duì)列中的鼠標(biāo)消息。1WH_MSGFILTER 和 WH_SYSMSGFILTER HooksWH_MSGFILTER 和 WH_SYSMSGFILTER Hooks使我們可以監(jiān)視菜單,滾動(dòng)條,消息框,對話框消息并且發(fā)現(xiàn)用戶使用ALT+TAB or ALT+ESC 組合鍵切換窗口。WH_MSGFILTER Hook只能監(jiān)視傳遞到菜單,滾動(dòng)條,消息框的消息,以及傳遞到通過安裝了Hook子過程的應(yīng)用程序建立的對話框的消息。WH_SYSMSGFILTER Hook監(jiān)視所有應(yīng)用程序消息。WH_MSGFILTER 和 WH_SYSMSGFILTER Hooks使我們可以在模式循環(huán)期間過濾14 / 22消息,這等價(jià)于在主消息循環(huán)中過濾消息。通過調(diào)用CallMsgFilter function可以直接的調(diào)用WH_MSGFILTER Hook。通過使用這個(gè)函數(shù),應(yīng)用程序能夠在模式循環(huán)期間使用相同的代碼去過濾消息,如同在主消息循環(huán)里一樣。1WH_SHELL Hook外殼應(yīng)用程序可以使用WH_SHELL Hook去接收重要的通知。當(dāng)外殼應(yīng)用程序是激活的并且當(dāng)頂層窗口建立或者銷毀時(shí),系統(tǒng)調(diào)用WH_SHELL Hook子過程。WH_SHELL 共有5種情況:1. 只要有個(gè)toplevel、unowned 窗口被產(chǎn)生、起作用、或是被摧毀;2. 當(dāng)Taskbar需要重畫某個(gè)按鈕;3. 當(dāng)系統(tǒng)需要顯示關(guān)于Taskbar的一個(gè)程序的最小化形式;4. 當(dāng)目前的鍵盤布局狀態(tài)改變;5. 當(dāng)使用者按Ctrl+Esc去執(zhí)行Task Manager(或相同級別的程序)。按照慣例,外殼應(yīng)用程序都不接收WH_SHELL消息。所以,在應(yīng)用程序能夠接收WH_SHELL消息之前,應(yīng)用程序必須調(diào)用SystemParametersInfo function注冊它自己。 Hook 子過程處理回調(diào)函數(shù)(HOOK處理子過程)為了攔截和處理特定的消息,你可以使用SetWindowsHookEx函數(shù)(下面將具體說明這些函數(shù)的聲明及各種參數(shù))在該類型的HOOK鏈中安裝你自己的處理HOOK的子過程(回調(diào)函數(shù))。只要您安裝的鉤子的消息事件類型發(fā)生,WINDOWS就將調(diào)用鉤子函數(shù)。譬如您安裝的鉤子是WH_MOUSE類型,那么只要有一個(gè)鼠標(biāo)事件發(fā)生時(shí),該鉤子函數(shù)就會被調(diào)用。不管您安裝的是那一類型鉤子,鉤子函數(shù)的原型都時(shí)是一樣的,語法如下:public function MyHook(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) as long處理代碼end function其中MyHook可以隨便命名,其它不能變。該函數(shù)必須放在模塊段。參數(shù)說明:nCode指定HOOK傳入的信息類型。Hook子過程使用這個(gè)參數(shù)來確定任務(wù)。這個(gè)參數(shù)的值依賴于Hook類型,每一種Hook都有自己的Hook代碼特征字符集。wParam:短整型參數(shù)。 15 / 22lParam:長整型參數(shù)。wParam,iParam的取值隨nCode不同而不同,它代表了某種類型的HOOK的某個(gè)特定的動(dòng)作。它們的典型值是包含了關(guān)于發(fā)送或者接收消息的信息。至于以上的幾個(gè)參數(shù)及返回值的具體含義,各種類型的鉤子都不相同,所以您必須查詢WIN32 API 指南來得到不同類型鉤子參數(shù)的詳細(xì)定義以及它們返回值的意義。譬如: WH_CALLWNDPROC nCode 只能是HC_ACTION,它代表有一個(gè)消息發(fā)送給了一個(gè)窗口 wParam 如果非0,代表正被發(fā)送的消息 lParam 指向CWPSTRUCT型結(jié)構(gòu)體變量的指針 return value: 未使用,返回0 WH_MOUSE nCode 為HC_ACTION 或 HC_NOREMOVE wParam 包含鼠標(biāo)的事件消息 lParam 指向MOUSEHOOKSTRUCT型結(jié)構(gòu)體變量的指針 return value: 如果不處理返回0,否則返回非0值 Hook 的安裝/卸載安裝鉤子使用SetWindowsHookEx函數(shù)(API函數(shù)),指定一個(gè)HOOK類型、自己的HOOK過程是全局還是局部HOOK,同時(shí)給出HOOK過程的進(jìn)入點(diǎn),就可以輕松的安裝你自己的HOOK過程。SetWindowsHookEx總是將你的HOOK函數(shù)放置在HOOK鏈的頂端。你可以使用CallNextHookEx函數(shù)將系統(tǒng)消息傳遞給HOOK鏈中的下一個(gè)函數(shù)。[注意]對于某些類型的HOOK,系統(tǒng)將向該類的所有HOOK函數(shù)發(fā)送消息,這時(shí),HOOK函數(shù)中的CallNextHookEx語句將被忽略。全局(遠(yuǎn)程鉤子)HOOK函數(shù)可以攔截系統(tǒng)中所有線程的某個(gè)特定的消息,為了安裝一個(gè)全局HOOK過程,必須在應(yīng)用程序外建立一個(gè)DLL,并將該HOOK函數(shù)封裝到其中,應(yīng)用程序在安裝全局HOOK過程時(shí)必須先得到該DLL模塊的句柄。將DLL名傳遞給LoadLibrary 函數(shù),就會得到該DLL模塊的句柄;得到該句柄 后,使用GetProcAddress函數(shù)可以得到HOOK過程的地址。最后,使用SetWindowsHookEx將HOOK過程的首址嵌入相應(yīng)的HOOK鏈中,SetWindowsHookEx傳遞一個(gè)模塊句柄,它為HOOK過程的進(jìn)入點(diǎn),線程標(biāo)識符置為0,指出:該HOOK過程同系統(tǒng)中的所有線程關(guān)聯(lián)。如果是安裝局部HOOK此時(shí)該HOOK函數(shù)可以放置在DLL中,也可以放置在應(yīng)用程序的模塊段。16 / 22SetWindowHookEx函數(shù)參數(shù)說明:idHook:代表是何種Hook(也就是上面講的14種Hook)lpfn:代表處理Hook的過程所在的Address,這是一個(gè)CallBack Fuction(也就是上面講的回調(diào)函數(shù)),當(dāng)掛上某個(gè)Hook時(shí),我們便得定義一個(gè)Function來當(dāng)作某個(gè)信息產(chǎn)生時(shí),來處理它的Function。因這個(gè)參數(shù)是一個(gè) Function的Address所以我們固定將Hook ,并以AddressOf HookFunc傳入hmod:,如果是Local Hook,該值可以是Null(VB中可傳0進(jìn)去),而如果是Remote Hook,則可以使用GetModuleHandle(.dll名稱)來傳入。dwThreadId:代表執(zhí)行這個(gè)Hook的ThreadId(線程ID),如果不設(shè)定是那個(gè)Thread(線程)來做,則傳0。該參數(shù)可以決定該鉤子是局部的還是系統(tǒng)范圍的。如果該值為NULL,那么該鉤子將被解釋成系統(tǒng)范圍內(nèi)的,那它就可以監(jiān)控所有的進(jìn)程及它們的線程。如果您指定了您自己進(jìn)程中的某個(gè)線程ID 號,那該鉤子是一個(gè)局部的鉤子。如果該線程ID是另一個(gè)進(jìn)程中某個(gè)線程的ID,那該鉤子是一個(gè)全局的遠(yuǎn)程鉤子。這里有兩個(gè)特殊情況:WH_JOURNALRECORD 和 WH_JOURNALPLAYBACK總是代表局部的系統(tǒng)范圍的鉤子,之所以說是局部,是因?yàn)樗鼈儧]有必要放到一個(gè)DLL中。WH_SYSMSGFILTER 總是一個(gè)系統(tǒng)范圍內(nèi)的遠(yuǎn)程鉤子。其實(shí)它和WH_MSGFILTER鉤子類似,如果把參數(shù)ThreadID設(shè)成0的話,它們就完全一樣了。etWindowHookEx函數(shù)返回值: 如果SetWindowsHookEx()成功,它會傳回一個(gè)值,代表目前的Hook的Handle,否則返回NULL。您必須保存該句柄,因?yàn)楹竺嫖覀冞€要它來卸載鉤子。卸載鉤子使用UnhookWindowsHookEx函數(shù)來卸載創(chuàng)建的鉤子。函數(shù)聲明:Declare Function UnhookWindowsHookEx Lib user32 Alias UnhookWindowsHookEx (ByVal hHook As Long) As Long參數(shù)說明:hHook:是SetWindowsHookEx()的傳回值 設(shè)計(jì)流程及函數(shù)思想 簡述本模塊是基于 Client/Server(客戶端/服務(wù)器)結(jié)構(gòu)的 Windows Socket 編程,17 / 22基本函數(shù)思想是與被控制端向控制端發(fā)送一個(gè)消息可以是字符,數(shù)字等,然后控制端根據(jù)相關(guān)信息采取相關(guān)的操作,主要是主要是通過多線程技術(shù)來實(shí)現(xiàn),同時(shí)也運(yùn)用了 HOOK 技術(shù),還有相關(guān)的 API 函數(shù)來支持。 代碼分析 4 程序測試與相應(yīng)改進(jìn) 程序界面 程序相關(guān)測試 獲取對方相關(guān)信息圖 2 獲取對方相關(guān)信息18 / 22 發(fā)送消息及存貯圖 3 發(fā)送信息及存儲 被指導(dǎo)端顯示信息 相關(guān)改進(jìn)結(jié) 論 本文在 Client/Server(客戶端/服務(wù)器)結(jié)構(gòu)下實(shí)現(xiàn)了遠(yuǎn)程指導(dǎo),利用了VC++中比較重要的 HOOK 技術(shù)、多線程技術(shù),同時(shí)調(diào)用 API 當(dāng)中的相關(guān)函數(shù)來實(shí)現(xiàn),編程方面采用了 Windows Scoket 編程,最終能夠?qū)崿F(xiàn)網(wǎng)絡(luò)通信,使得指導(dǎo)端能夠響應(yīng)被指導(dǎo)端的請求,控制被指導(dǎo)端的鼠標(biāo)和鍵盤、存儲被指導(dǎo)端鍵盤和鼠標(biāo)信息,而且也能夠進(jìn)行控制鼠標(biāo)和指導(dǎo)鍵盤的輸入等其它相關(guān)的操作。在我們進(jìn)行網(wǎng)絡(luò)通信的時(shí)候,還可以進(jìn)行“組播”消息,即通過一個(gè)指導(dǎo)端能夠向多個(gè)被指導(dǎo)端傳遞消息,響應(yīng)多個(gè)被指導(dǎo)端的請求,使得此模塊效率更高,使其能夠有更大的實(shí)用價(jià)值。19 / 22 參考文獻(xiàn)[1] C++ 程序設(shè)計(jì)從入門到精通[M].北京:人民郵電出版社,2022。[2] 孫鑫,++深入詳解[M].北京:電子工業(yè)出版社,2022。[3] [M].北京:電子工業(yè)出版社,2022。[4] 辛長安,++編程技術(shù)與難點(diǎn)解析[M].北京:清華大學(xué)出版社,2022。[5] 周金,徐丙立,[M].北京:人民郵電出版社,2022。[6] 汪曉平, C++網(wǎng)絡(luò)通信協(xié)議分析與應(yīng)用實(shí)現(xiàn)[M].北京:人民郵電出版社,2022。[7] 王險(xiǎn)峰, 環(huán)境下的多線程編程原理與應(yīng)用[M].北京:清華大學(xué)出版社,2022。文檔來源:591 論文網(wǎng)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1