一个关于Hook的问题

ys1116 2008-10-03 02:37:10
LRESULT CALLBACK LauncherHook(int nCode,WPARAM wParam,LPARAM lParam)
{
LRESULT Result=CallNextHookEx(Hook,nCode,wParam,lParam);
if(nCode==HC_ACTION)
{
if(lParam & 0x80000000)
{
char c[1];
c[0]=wParam;
SaveLog(c);
}
}
return Result;
}
请问 如何可以获得我勾取到的这个消息来自的窗口句柄
消息结构中 应该有 对应窗口句柄的信息啊。。
但是怎么可以获得呢 请高手指教
...全文
90 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wltg2001 2008-10-03
  • 打赏
  • 举报
回复
WH_GETMESSAGE 可是实现这个功能吗?
=================
上面不是说了吗?回调函数中的lParam指向一个MSG结构,这个结构中有窗口句柄
cnzdgs 2008-10-03
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ys1116 的回复:]
WH_KEYBOARD用的钩子是这个类型的
请问可以得到吗?
[/Quote]
GetForegroundWindow。
[Quote=引用 8 楼 ys1116 的回复:]
WH_GETMESSAGE 那这个类型的钩子
如何指定勾取固定窗口的句柄呢

我的思路是 用键盘向一个固定窗口发送消息
然后通过勾取这个键盘消息来获得窗口句柄
但是既然这种钩子没有那样的消息结构
就没办法实现这个功能了

WH_GETMESSAGE 可是实现这个功能吗?
[/Quote]
lParam参数是指向一个MSG结构的指针,结构中的hwnd成员就是窗口句柄。

这些信息都可以在MSDN中查到。看SetWindowsHookEx说明中idHook的各种取值的解释中的超链接。
ys1116 2008-10-03
  • 打赏
  • 举报
回复
WH_GETMESSAGE 那这个类型的钩子
如何指定勾取固定窗口的句柄呢

我的思路是 用键盘向一个固定窗口发送消息
然后通过勾取这个键盘消息来获得窗口句柄
但是既然这种钩子没有那样的消息结构
就没办法实现这个功能了

WH_GETMESSAGE 可是实现这个功能吗?
wltg2001 2008-10-03
  • 打赏
  • 举报
回复
WH_KEYBOARD用的钩子是这个类型的
请问可以得到吗?
=================
似乎不行,至少从两个参数上得不到窗口句柄,而且按键时也有可能没有焦点,也就没有所谓窗口了。
ys1116 2008-10-03
  • 打赏
  • 举报
回复
WH_KEYBOARD用的钩子是这个类型的
请问可以得到吗?
wltg2001 2008-10-03
  • 打赏
  • 举报
回复
总得告诉大家你Hook的是什么吧。SetWindowsHookEx的第1参数给的是什么?
=============
同意,钩子有好多种啊,不同钩子的回调函数的参数又不一样,如果是WH_GETMESSAGE钩子的话,回调函数的lParam是指向一个MSG结构的,而这个结构中有窗口句柄
adriano119 2008-10-03
  • 打赏
  • 举报
回复
应该在WPARAM或LPARAM吧
具体就不清楚了
cnzdgs 2008-10-03
  • 打赏
  • 举报
回复
总得告诉大家你Hook的是什么吧。SetWindowsHookEx的第1参数给的是什么?
UDX协议 2008-10-03
  • 打赏
  • 举报
回复
不同的hook,其wparam为不同的结构。比如msg hook.

lParam
Pointer to anMSG structure that contains details about the message.

这个需要查一个msdn就可以了。

lsldd 2008-10-03
  • 打赏
  • 举报
回复
GetActiveWindow()

15,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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