什么是“钩子”,我该如何用Java编写一个?以及如何与内核通信以了解用户按下的键/向操作系统注册
虽然我搜索了很多,但我仍然不清楚“钩子”到底是什么。例如,我在wiki答案上阅读了这篇文章:
钩子是一种将一段代码插入另一段代码的方法,以便第一段代码在第二段代码之前执行,从而使第一段代码有机会监视和/或过滤第二段代码的行为。例如,鼠标挂钩,它允许挂钩代码监视鼠标,同时保留原始鼠标事件处理例程的功能。
我也读了这篇文章,但我仍然不明白“钩子”到底是什么。有人可以用通俗的话解释一下什么是“钩子”吗?为什么有些人会写一个“钩子”?另外,有没有可能用Java写一个“钩子”?
注意:
我想用java写一个键盘记录器,我的一个朋友说你必须用C写一个“钩子”。我不能用Java编写整个键盘记录器(只能在Windows上运行)吗?
编辑
请给出一个答案 w.r.t 键盘记录器.我如何要求提供有关使用挂钩向我的应用程序按下的键的信息?或者如何使用 JNI 向操作系统注册我的应用程序?我希望我的应用程序记录用户按下的键。kernel