进程A把消息钩子安装到了进程B,按理说应该是过滤进程B的消息呀,为什么其他进程的消息也过滤了?奇怪哦~

hsly110 2005-07-12 08:01:02
程A把消息钩子安装到了进程B,按理说应该是过滤进程B的消息呀,为什么其他进程的消息也过滤了?奇怪哦~

用 SetWindowsHookEx 的最后一个参数传入了进程B的主线程ID了,为什么其他进程的消息还是被过滤。


我安装消息钩子 到进程B,如果进程B的窗体移动,就弹出一个消息框出来。效果是有了,但是不属于进程B的窗体,移动时,也弹出! 郁闷哦~

我使用的是 WH_CBT 方式。资料说 可以属于线程或者系统范围
...全文
142 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
hsly110 2005-07-12
  • 打赏
  • 举报
回复
冷静的检查了一下代码,原来是自己写的代码太混乱,才导致这样的问题发生.

呵呵,搞掂~~ 多谢大家指点我这个菜鸟!
hsly110 2005-07-12
  • 打赏
  • 举报
回复
我已经很小心了。GetWindowThreadProcessId取得的数值和SPY++ 一样.
就是不行.

我在检查一下代码看看~ 我发现 SPY++ 有个概念 叫 窗体进程ID 是不是传窗体进程ID ? 而不是传线程ID 呢 ?

我再测试一下 ~~ 有心得在告诉你们!
caucyniu 2005-07-12
  • 打赏
  • 举报
回复
我的意识是你的B进程的ID根本就没得到传去的是NULL,也就是GetWindowThreadProcessId函数失败
qrlvls 2005-07-12
  • 打赏
  • 举报
回复
HHOOK SetWindowsHookEx( int idHook,
HOOKPROC lpfn,
HINSTANCE hMod,
DWORD dwThreadId
);

dwThreadId
[in] Specifies the identifier of the thread with which the hook procedure is to be associated. If this parameter is zero, the hook procedure is associated with all existing threads running in the same desktop as the calling thread.

因此 SetWindowsHookEx 时最后一个参数为 0 则会在全局范围内挂钩,只安装到某一个进程需要指定相应的 Thread ID
fireseed 2005-07-12
  • 打赏
  • 举报
回复
是这样的,WH_CBT是全局钩子

你可以通过HWND参数来判断该消息是不是发送到你要的窗体。
caucyniu 2005-07-12
  • 打赏
  • 举报
回复
你的进程B ID是NULL ,和0 一样, 可以先判断下是不,应该是通过findwindw得到是不?
wbf420 2005-07-12
  • 打赏
  • 举报
回复
你应该先半断是不是要处理的进程
caucyniu 2005-07-12
  • 打赏
  • 举报
回复
Windows核心编程中是个好东西 ,我们可以研究下 hsly110呵呵
MSN:caucyxia2002@hotmail.com
caucyniu 2005-07-12
  • 打赏
  • 举报
回复
不会快学啊 , jun_01,很有意识的啊嘿嘿。
其实FindWindow(NULL,str);那个str还真不好写,其实就是SPY++ 的Window Caption。
比如:Cwnd *pWnd=FindWindow(NULL,"Winamp 播放清单编辑器");
pWnd->SendMessage(WM_CLOSE);
发现mp3就关啦嘿嘿
jun_01 2005-07-12
  • 打赏
  • 举报
回复
俺还不怎么会钩子,郁闷ing

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧