有谁做过NT或者Window2k下的Hook

sor 2001-10-23 11:49:07
我想做一个全局键盘Hook,使用SetWindowsHookEx函数
HHOOK SetWindowsHookEx(
int idHook, // hook type
HOOKPROC lpfn, // hook procedure
HINSTANCE hMod, // handle to application instance
DWORD dwThreadId // thread identifier
);

其中的idHook 有一个可选值是WH_KEYBOARD_LL,其说明是
WH_KEYBOARD_LL
Windows NT/2000: Installs a hook procedure that monitors low-level keyboard input events. For more information, see the LowLevelKeyboardProc hook procedure.
可是我找遍了我的硬盘,都没有找到WH_KEYBOARD_LL 的定义

还有参数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.

但当我指定这个参数为0时,程序一运行连VB都关了,即使我指定其值为App.ThreadID,程序运行也很不正常,经常死
...全文
205 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ArmorCar 2001-10-23
  • 打赏
  • 举报
回复
1.WH_KEYBOARD_LL=13
2.You can use WH_KEYBOARD instead of WH_KEYBOARD_LL if you wanna create a thread associated hook,but if you wanna create a global hook...
3.WH_KEYBOARD_LL is a global hook,So your HookProc MUST IN A DLL.You can use LoadLibary & GetProcAddress to retieve the HookProc address.
sor 2001-10-23
  • 打赏
  • 举报
回复
to gameboy999:
如果dwThreadId指定为本程序的ThreadID,这个Hook就不能截获程序以外的消息,怎么办?
而且MSDN上说,这个参数指定为0的话,这个Hook和所有运行的线程关联
你有成功的例子吗?给我发一个,sor@263.net
gameboy999 2001-10-23
  • 打赏
  • 举报
回复
g_hHook = ::SetWindowsHookEx(WH_MOUSE,MouseHookProc,(HINSTANCE)NULL,::GetCurrentThreadId());

如上面,dwThreadId当然是hook所在的线程id咯


而且MSDN上说得挺清楚:
WH_MOUSE_LL Global only
这就说明这个钩子只能放在dll中~~~ 所以。。。。。。


不过WH_KEYBOARD_LL 的定义我好像也找不到哦 @@ :p
内容概要:本文档详细介绍了基于直驱永磁同步发电机(PMSG)的1.5MW风力发电系统在Simulink环境下的建模与仿真全过程,涵盖了风力机空气动力学模型、PMSG电磁特性建模、不可控整流与逆变电路、直流环节、空间矢量脉宽调制(SVPWM)技术以及核心控制策略的设计。重点实现了最大功率点跟踪(MPPT)控制以提升风能捕获效率,并构建了电压外环与电流内环协同工作的双闭环控制系统,通过仿真验证了系统在不同风速条件下稳定运行的能力及动态响应性能。; 适合人群:适用于具备电力系统、电机控制理论基础及Simulink仿真操作经验的研究生、科研人员和从事新能源发电系统开发的工程技术人员;特别适合正在进行风电系统建模、控制算法研究或完成相关毕业设计的专业人士。; 使用场景及目标:①深入理解直驱式PMSG风力发电系统的整体架构与工作机理;②掌握从物理部件建模到控制策略实现的完整Simulink仿真流程;③学习并复现MPPT控制、双闭环控制等关键技术方案;④为后续开展低电压穿越、并网稳定性分析、故障诊断等高级课题提供可靠的仿真平台支撑。; 阅读建议:建议结合Matlab/Simulink软件动手实践,逐模块搭建模型,重点关注各控制环节的参数设计与调试方法,同时可参照文中提供的其他风电相关资源进行拓展学习与对比分析。

7,788

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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