1 回答

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超14個(gè)贊
直接通過C#調(diào)用window api來(lái)實(shí)現(xiàn)HOOK,說(shuō)下思路吧,實(shí)現(xiàn)自己琢磨下吧,如你所說(shuō)其實(shí)很簡(jiǎn)單,關(guān)鍵邏輯想通了就OK
1. 獲取窗體句柄,可以通過findwindow函數(shù)很enumwindow兩個(gè)函數(shù)結(jié)合使用獲取,如果知道了類名或者窗體的名稱也可以直接調(diào)用窗體操作相關(guān)API來(lái)獲取窗體句柄
2.HOOK部分,這里我建議你用全局鉤子,通過 setwindowhookex函數(shù)來(lái)安裝鉤子,鉤子的類型就是鍵盤鉤子和鼠標(biāo)鉤子了,要是你覺得普通的鍵盤鼠標(biāo)鉤子不能滿足,那么就像QQ那樣用低級(jí)的鍵盤鉤子和鼠標(biāo)鉤子,這個(gè)在msdn文檔都有描述或者百度下就知道了,然后 處理的話直接在鉤子的回調(diào)函數(shù),這個(gè)我想你也知道,這個(gè)處理可能需要點(diǎn)技巧了
3.要控制ctrl-alt-delete那么就用低級(jí)鍵盤鉤子的,以前用C#寫過,不過是用C++寫庫(kù),C#調(diào)用的,所以要控制這個(gè)我推薦用低級(jí)鍵盤鉤子,不過據(jù)我所知好像C#直接用鉤子還是有些限制很不足的,比如低級(jí)的鉤子就不好整了
==
以上就是一些簡(jiǎn)單的思路了
添加回答
舉報(bào)