HHOOK SetWindowsHookEx( int idHook,
HOOKPROC lpfn,
HINSTANCE hMod,
DWORD dwThreadId
);对于全局钩子,系统会为每一个桌面进程调用loadlibrary,加载包含钩子子程序的dll,以便执行钩子子程序,但是根据lpfn怎么知道是哪一个dll呢?换一句话说,我们可以通过以下代码获得函数地址:
HOOKPROC hkprcSysMsg;
static HINSTANCE hinstDLL;
static HHOOK hhookSysMsg;
hinstDLL = LoadLibrary((LPCTSTR) "c:\\windows\\sysmsg.dll");
hkprcSysMsg = (HOOKPROC)GetProcAddress(hinstDLL, "SysMessageProc");
hhookSysMsg = SetWindowsHookEx(WH_SYSMSGFILTER,hkprcSysMsg,hinstDLL,0); 我们能不能通过hkprcSysMsg 知道是哪一个dll?
HOOKPROC lpfn,
HINSTANCE hMod,
DWORD dwThreadId
);对于全局钩子,系统会为每一个桌面进程调用loadlibrary,加载包含钩子子程序的dll,以便执行钩子子程序,但是根据lpfn怎么知道是哪一个dll呢?换一句话说,我们可以通过以下代码获得函数地址:
HOOKPROC hkprcSysMsg;
static HINSTANCE hinstDLL;
static HHOOK hhookSysMsg;
hinstDLL = LoadLibrary((LPCTSTR) "c:\\windows\\sysmsg.dll");
hkprcSysMsg = (HOOKPROC)GetProcAddress(hinstDLL, "SysMessageProc");
hhookSysMsg = SetWindowsHookEx(WH_SYSMSGFILTER,hkprcSysMsg,hinstDLL,0); 我们能不能通过hkprcSysMsg 知道是哪一个dll?
解决方案 »
- 我做错了
- 如何把WM_MOUSEMOVE的lParam参数转为一个POINT或POINTS类型?
- 截获API 绝世高手进来看看
- MFC 远程访问服务器的数据库时界面卡成白的了。
- 不选择菜单,如何取消托盘弹出的菜单?
- 切分窗口时出现如下错误,怎么回事?
- 请大家指点:如果使进程无法被杀掉
- 请大家关注此问题
- GetVolumeInformation 获取磁盘卷标序列号 不同的电脑居然一样
- win7下应用程序中,media player的音量无法用core audio api控制
- 怎么在MFC中用OpenGL实现用鼠标拖动一个物体,以便从不同角度观察此物体?
- 求助,使用import后pch文件为什么这么大啊!!!
你的应用程序是在用户空间运行的,你只能访问你自己的HookProc,其它的你都访问不了的。
通常情况下应用程序也没有“通过hkprcSysMsg 知道是哪一个dll”的需求。