繁体   English   中英

WH_KEYBOARD 和 WH_KEYBOARD_LL 的区别?

[英]Difference between WH_KEYBOARD and WH_KEYBOARD_LL?

两者的工作有什么区别? 对于WH_KEYBOARD_LL我读到它安装了一个监控低级键盘输入事件的钩子程序。 低级键盘事件是什么意思?

嗯,不要过分关注这个词,它没有说明任何问题。 两者之间存在巨大差异。 WH_KEYBOARD_LL 安装了一个钩子,需要在你自己的程序中实现回调。 并且您必须泵出一个消息循环,以便 Windows 可以在即将发送键盘消息时进行回调。 这使得开始变得非常容易。

WH_KEYBOARD 的工作方式非常不同,它需要一个可以安全注入挂钩进程的 DLL。 这使得开始变得非常困难,在不影响进程的情况下注入 DLL 并不容易。 特别是在 64 位操作系统上。 如果某些其他进程需要了解击键,也不会处理您可能需要的进程间通信。 就像一个键盘记录器。

WH_KEYBOARD 的优点是它可以访问键盘状态。 这是 Windows 中的每个进程属性。 当您想使用钩子将虚拟键转换为自己的键入键时,诸如活动键盘布局之类的状态以及修饰符和死键的状态非常重要。 您无法从外部进程可靠地调用 ToUnicodeEx()。

你不能在没有运行示例代码的情况下摇摆猫,谷歌会给你很多。 所以如果你以前从未写过这样的钩子,一定要使用已知的工作,它会避免很多悲伤。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM