Re: [问题] Mouse Hook修改鼠标位置讯息

楼主: chinoyan   2013-09-29 03:29:28
※ 引述《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

Links booklink

Contact Us: admin [ a t ] ucptt.com