1、如果要HOOK全局消息,需要全局鉤子,這樣,需要把你的HOOK代碼注入到系統(tǒng)每個(gè)進(jìn)程里面去。而實(shí)現(xiàn)這個(gè)最好的方法,就是用DLL來(lái)實(shí)現(xiàn)。系統(tǒng)會(huì)自動(dòng)把該DLL注入到所有的進(jìn)程空間中。
創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括綿陽(yáng)網(wǎng)站建設(shè)、綿陽(yáng)網(wǎng)站制作、綿陽(yáng)網(wǎng)頁(yè)制作以及綿陽(yáng)網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,綿陽(yáng)網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到綿陽(yáng)省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
2、這個(gè)不用MFC寫(xiě),MFC里沒(méi)有相關(guān)的類。用win32項(xiàng)目寫(xiě)即可,全局鉤子代碼主要是寫(xiě)在DLL動(dòng)態(tài)庫(kù)里。然后寫(xiě)個(gè)EXE調(diào)用下這個(gè)DLL掛鉤成功即可。DLL的知識(shí),函數(shù)導(dǎo)出,調(diào)用約定,DllMain等都要了解。windows的消息機(jī)制也要了解。
3、第三個(gè)參數(shù),要寫(xiě)dll模塊的句柄。只有用于本程序的非全局鉤子,也就是不用定義在dll中的鉤子才可以是null。
4、因?yàn)槟銈鬟^(guò)去的參數(shù),對(duì)于遠(yuǎn)進(jìn)程來(lái)說(shuō),是沒(méi)有意義的。因此,第一步,你需要將實(shí)現(xiàn)寫(xiě)入DLL,然后將DLL注入遠(yuǎn)進(jìn)程。(注,DLL的DLLMain函數(shù)中實(shí)現(xiàn)SetWindowLong等實(shí)現(xiàn))。這種方法要比全局鉤子的方法效率高。而且也很容易寫(xiě)。
5、如果指定確定的線程,即為線程專用鉤子;如果指定為空,即為全局鉤子。其中,全局鉤子函數(shù)必須包含在DLL(動(dòng)態(tài)鏈接庫(kù))中,而線程專用鉤子還可以包含在可執(zhí)行文件中。
因此,第一步,你需要將實(shí)現(xiàn)寫(xiě)入DLL,然后將DLL注入遠(yuǎn)進(jìn)程。(注,DLL的DLLMain函數(shù)中實(shí)現(xiàn)SetWindowLong等實(shí)現(xiàn))。這種方法要比全局鉤子的方法效率高。而且也很容易寫(xiě)。
為開(kāi)始收到鼠標(biāo)事件,簡(jiǎn)單地安裝下面的鉤子即可。mouseHook.InstallHook(); 為停止接收事件,只需簡(jiǎn)單地卸載這個(gè)鉤子。mouseHook.UninstallHook(); 你也可以調(diào)用Dispose來(lái)卸載這個(gè)鉤子。 在你的應(yīng)用程序退出時(shí),卸載這個(gè)鉤子是很重要的。
.結(jié)合兩者,但做一個(gè)標(biāo)志,這樣的函數(shù)只觸發(fā)一次,每100毫秒左右。
你是想把資源管理器或我的電腦里的文件直接拖動(dòng)到你的程序里然后直接打開(kāi)吧。如果你是非對(duì)話框的MFC程序,需要在CMainFrame:OnCreate 里添加 DragAcceptFiles();然后你再拖動(dòng)文件就能看見(jiàn)變化了。
鉤子函數(shù)一般出現(xiàn)在交互式環(huán)境中,相當(dāng)于一個(gè)觸發(fā)器,當(dāng)環(huán)境運(yùn)行中出現(xiàn)了某些滿足觸發(fā)器的條件的時(shí)候就會(huì)觸發(fā)運(yùn)行與鉤子函數(shù)相關(guān)聯(lián)的函數(shù),完成額外的操作。具體要和所使用的語(yǔ)言與環(huán)境有關(guān)。
鉤子就像是一個(gè)掛載點(diǎn),掛到函數(shù)上。當(dāng)函數(shù)執(zhí)行過(guò)程中遇到這個(gè)掛載點(diǎn),這個(gè)鉤子 就會(huì)將一塊代碼拉出來(lái),執(zhí)行這個(gè)代碼。鉤子函數(shù)相對(duì)于直接在函數(shù)中調(diào)用另外一個(gè)函數(shù)來(lái)說(shuō),更加安全方便。
就像一個(gè)攔截函數(shù),你可以攔截到指定的消息之類的自己來(lái)處理,你還能決定要不要把這個(gè)消息傳遞下去。
軟件HOOK即鉤子函數(shù),鉤子函數(shù)是Windows消息處理機(jī)制的一部分,通過(guò)設(shè)置“鉤子”,應(yīng)用程序可以在系統(tǒng)級(jí)對(duì)所有消息、事件進(jìn)行過(guò)濾,訪問(wèn)在正常情況下無(wú)法訪問(wèn)的消息。
本文名稱:C語(yǔ)言全局鉤子函數(shù) c語(yǔ)言 鉤子
網(wǎng)頁(yè)URL:http://chinadenli.net/article9/depopoh.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、微信公眾號(hào)、品牌網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、域名注冊(cè)、App設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容