WIN32。
軟體啟動設定一個計時器,
在計時器里面。放所有功能函式。
全域
Bool hook = True.
視窗程序。
case:wm-create:
settimer.
retuen 0.
case:wm-timer:
{
yxhwnd=findwindow.
if(yxhwnd)
{
if(hook)
{
setwindowshook.//創建HOOK
hook= false.
}
if(youxijinru) //游戲進入對局
{
所有功能函式。
}
}
else
{
hook=false.
Unhook//洗掉HOOK。
}
retuen 0.
}
DLL里面。
只對游戲下鍵盤鉤子。
只截取F1-F12訊息。
軟體打開,F1-F12,都可以用。
等游戲玩一會了,F1-F12,按就沒反應了。
我對設定HOOK,和洗掉HOOK,那里下斷點。
啟動時設定HOOK那里斷下,HOOK成功。
游戲里面按F1-F12管用了。
玩一會游戲。
再按游戲里面F1-F12就不管用,
UnHook那里并沒有斷下來,
說明HOOK沒有結束。
但是為什么又不管用了呢。
求大神指點。
uj5u.com熱心網友回復:
設創建HOOK和洗掉HOOK都是DLLL里面匯出的函式uj5u.com熱心網友回復:
感覺邏輯不夠嚴謹,不要在定時器中反復Hook和UnHook操作
Hook是否成功需要判斷
uj5u.com熱心網友回復:
手機網頁不好參考回復。我也想知道,對于游戲,應該在哪里設定。
想了半天,除了計時器沒想到別的。
我在計時器里面也設定判斷了,并沒有重復設定HOOK
uj5u.com熱心網友回復:
如果是全域鉤子 你是否還應對鉤子是否已經失效做下判斷?比如訊息被截流等你的鉤子不就失效了么uj5u.com熱心網友回復:
我明白了,謝謝uj5u.com熱心網友回復:
進來學習學習!!!!!!!轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/31933.html
標籤:進程/線程/DLL
上一篇:有會C#大佬 幫忙解個疑嗎
