請教一個訊息攔截的問題 |
尚未結案
|
dodolong
一般會員 發表:5 回覆:6 積分:2 註冊:2003-12-31 發送簡訊給我 |
|
shinjie
資深會員 發表:12 回覆:275 積分:287 註冊:2003-03-19 發送簡訊給我 |
|
dodolong
一般會員 發表:5 回覆:6 積分:2 註冊:2003-12-31 發送簡訊給我 |
引言: 請問一下您有加 Result := CallNextHookEx(hHook,iCode,wParam,lParam); 如果有的話,應該就會Pass目前的訊息。首先感謝shinjie兄的回應 不過您所說的CallNextHookEx我查了查MSDN 上面似乎寫的是pass給hook chain的下一個hook procedure 當然我曾嘗試不將訊息pass給下一個hook procedure (我使用return 0來避免compiler的warning) 但似乎沒有效果,但訊息仍然會傳遞出去 目前嘗試過的只有利用JournalPlaybackProc會讓Keyboard跟Mouse失效 但這個hook的設計原意似乎跟我要達成的效果不太一樣 或許利用 |
Zard
尊榮會員 發表:24 回覆:396 積分:539 註冊:2003-11-26 發送簡訊給我 |
引言:引言: 請問一下您有加 Result := CallNextHookEx(hHook,iCode,wParam,lParam); 如果有的話,應該就會Pass目前的訊息。首先感謝shinjie兄的回應 不過您所說的CallNextHookEx我查了查MSDN 上面似乎寫的是pass給hook chain的下一個hook procedure 當然我曾嘗試不將訊息pass給下一個hook procedure (我使用return 0來避免compiler的warning) 但似乎沒有效果,但訊息仍然會傳遞出去 目前嘗試過的只有利用JournalPlaybackProc會讓Keyboard跟Mouse失效 但這個hook的設計原意似乎跟我要達成的效果不太一樣 或許利用>>< face="Verdana, Arial, Helvetica"> 如果你要修改攔截到的訊息, 用WH_GETMESSAGE(Message Hook), 因為Windows 不允許你修改Keyboard Hook的值(Mouse Hook好像也是), 但允許你修改Message Hook攔截到的訊息, 我的做法是把Message改為WM_NULL, 其它值不動, 就可以達到過濾該Message的效果. 例如: ((MSG*)lParam)->message = WM_NULL; 附帶一提, 過濾Message和CallNextHookEx沒關係. CallNextHookEx只是把操作傳給Hook Chain的下一個Hook, 使用CallNextHookEx只是為了讓其它的Hook能正常運作. |
dodolong
一般會員 發表:5 回覆:6 積分:2 註冊:2003-12-31 發送簡訊給我 |
引言: 如果你要修改攔截到的訊息, 用WH_GETMESSAGE(Message Hook), 因為Windows 不允許你修改Keyboard Hook的值(Mouse Hook好像也是), 但允許你修改Message Hook攔截到的訊息, 我的做法是把Message改為WM_NULL, 其它值不動, 就可以達到過濾該Message的效果. 例如: ((MSG*)lParam)->message = WM_NULL; 附帶一提, 過濾Message和CallNextHookEx沒關係. CallNextHookEx只是把操作傳給Hook Chain的下一個Hook, 使用CallNextHookEx只是為了讓其它的Hook能正常運作.感謝Zard兄的回應,您所說的方法達成了我的目的 相信這個方法應該能夠有一些不錯的用途與應用 不過有些再深入一點的相關問題小弟想再向您請教一下 其實我之前在看MSDN裡有關hook的document時有看到這個GetMsgProc 也在當中看到可以修改message,但不知道怎麼個改法(完全忘了WM_NULL...:p) 昨天嘗試了一下,發現真的能夠將一些message給過濾掉 我也針對一些一般的應用程式來做試驗,果真可以達到我要的效果 但是當我測試一些3D遊戲的時候,卻沒有相同的效果 上網查了查資料,也問了問人,得知DirectX是用dx input來做 它是直接抓取keyboard buffer,所以過濾message對它沒有效果 我是有在站上找到一篇站長發表的清除keyboard buffer的方法 但不知道是我沒有看懂還是使用不正確,並沒有達到預期的效果 所以想請教一下Zard兄與各位先進有關於清除keyboard buffer的方法 還望Zard兄及各位先進能不吝指導,謝謝 發表人 - dodolong 於 2004/12/31 13:35:35 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |