有谁做过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,程序运行也很不正常,经常死
...全文
223 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
内容概要:本文系统研究了基于CNN-SVM的卷积神经网络与支持向量机融合的数据分类预测方法,聚焦其在工业故障识别中的应用,提供了完整的Matlab代码实现。通过CNN提取输入数据的深层空间特征,再由SVM进行高精度分类,充分发挥两者优势,有效提升了故障识别的准确性、鲁棒性与泛化能力。该方法特别适用于处理电力系统、机械设备等领域的高维、非线性、强噪声监测数据,在变压器故障诊断、轴承缺陷识别等场景中具有重要应用价值。文档还整合了机器学习、深度学习、图像处理、路径规划、电力系统优化等多个前沿科研方向的技术资源,配套大量Matlab/Simulink仿真案例与Python代码,全面支持科研复现与工程实践。; 适合人群:具备一定编程基础,熟练掌握Matlab或Python语言,从事电气工程、自动化、人工智能、机械故障诊断等相关领域研究的研发人员及高校研究生; 使用场景及目标:① 实现工业设备的状态监测与多类别故障分类;② 深入理解CNN与SVM融合模型的设计原理与工程实现细节;③ 借助所提供的丰富算法案例开展科研复现、模型优化与系统仿真验证; 阅读建议:建议按照文档目录结构系统化学习,结合百度网盘提供的完整代码资源进行动手实践,重点关注CNN特征提取层与SVM分类器之间的数据接口设计与参数调优策略,同时可延伸学习文中涉及的其他智能算法及其在电力系统、信号处理等领域的交叉应用,全面提升科研创新能力。

7,788

社区成员

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

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