按照網上的帖子只做了一個VC MFC的hook Dll,然后建立了一個app工程來呼叫這個hook的介面。
在Dll中使用SetWindowsHookEx來獲取某個應用程式的hook,這個程式可以獲得記事本或者計算器這樣的單執行緒的hook,并且在對于WH_MOUSE和WH_KEYBOARD這樣的時間,SetWindowsHookEx安裝的回呼函式都能夠被呼叫(在回呼函式中設斷點,看是否能中斷)。
但是,在我試圖對有道詞典這樣的程式進行hook的時候出現了問題,我先獲得有道詞典的父視窗句柄(通過FindWindow),然后使用EnumChildWindows介面來獲取其各個子視窗句柄,然后找到了它的編輯框句柄,如下圖所示的句柄:

這個類名叫Edit的子視窗的句柄獲得后,我就用SetWindowsHookEx來獲得這個子視窗的滑鼠和鍵盤鉤子,在獲得鉤子成功后,我操作有道詞典的時候回呼函式就是不被呼叫,不知道是什么原因。
uj5u.com熱心網友回復:
現在有 HOOK 有時候是不能回呼的 原因可能被殺軟擋了, 或者軟體自己處理了。 又或者很多原因。 我記得有道好明是基于 CEF 的。 這個應該需要更多處理吧。 HOOK 的激活式的, 換個訊息試一下uj5u.com熱心網友回復:
樓上的能說的更清楚一點嗎,基于CEF的程式能掛鉤子嗎,如何掛鉤子,HOOK激活式是什么意思uj5u.com熱心網友回復:
測驗了下,用spy++也得不到那個編輯框的訊息。可能是你想系結的東西錯了。
uj5u.com熱心網友回復:
WinAPIOverridehttp://jacquelin.potier.free.fr/winapioverride32/轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/134088.html
標籤:進程/線程/DLL
