Re: [問題] Mouse Hook修改滑鼠位置訊息

看板Programming作者時間11年前 (2013/09/29 03:29), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《RexBT (Rex)》之銘言: : 想請問我目前想做一個Mouse Hook : 當我接收到Mouse Move的訊息後,串改lParam內x,y座標的值 : 例如 : 永遠都是貼x軸在上下動 : 以下是我的callback function : LRESULT CALLBACK MouseHookProc2(int nCode, WPARAM wParam, LPARAM lParam) : { : if(wParam == WM_MOUSEMOVE ||wParam == WM_NCMOUSEMOVE) : { : MOUSEHOOKSTRUCT* data=(MOUSEHOOKSTRUCT*) lParam; : LPARAM lParam2= MAKELPARAM(0,data->pt.y); : return CallNextHookEx(NULL,nCode,wParam,lParam2); : } : return CallNextHookEx(NULL,nCode,wParam,lParam); : } : 但執行結果,每次滑鼠移動都是照常 : 沒有被修改過 : 請問有任何大大有試過寫這樣的function嗎 : 可以指點迷津? 先聲明,以下為我個人理解,有錯請見諒,畢竟小弟也沒幹過同樣的事 首先 要用DLL注入的方法,注入要目標進程(如果你只想在目標進程有效) 若是要全局,我記得是不用寫成DLL的 再來 依我的理解,callback的hook是由系統通知您發生了這個mouse 事件 所以您修改的X 可能只是個複本(我猜的),所以改了沒用,可以換個做法 HOOK到後吃掉訊息,不要CallNextHookEx 用SetCursorPos/ SendMessage 來取代你原本IF裡的 CallNextHookEx -- ████ █ ★ ████ █ █ █ █ █ █ █ █ █ 超 級 熱 烈 歡 迎 █ ████ █ █ █ ████ █ █ █ █ █ ███★ █ █ 歡迎到嘉義版! ★███ █ █ █ █ █ █ █ 訊馳電腦-路徑嘉義市林森西路496號(05)2244-526順發斜對面 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.47.57.246
文章代碼(AID): #1IHouSD5 (Programming)
討論串 (同標題文章)
文章代碼(AID): #1IHouSD5 (Programming)