我正在尝试用Java创建一种键盘记录器。我有一个应用程序,允许人们在他们的桌面上获取他们的RSS源,我想快速访问。 顺便说一下,我需要一些能做到这一点的东西:
我的应用必须完全跨平台。除此功能外,所有事情都已完成。
我已尝试使用KeyStroke
甚至System.in
来执行此操作,但只有当用户将窗口设置为活动时,它们才会捕获组合键。
那么,有没有办法在不使用JNI或JNA的情况下从应用程序外部(如透明叠加层)捕获关键组合(这就是我的搜索给我的)。
感谢您的帮助。
答案 0 :(得分:1)
这不可能。在当今世界,没有任何操作系统可以让你只记录所有击键
答案 1 :(得分:0)
不,你必须放弃一些系统相关的库,即使用某种形式的JNI。
不同的内置粒度级别为:
WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
用于registerKeyboardAction的常量,表示当接收组件是焦点组件的祖先或者它本身就是焦点组件时,应该调用该命令。
WHEN_FOCUSED
用于registerKeyboardAction的常量,表示当组件具有焦点时应调用该命令。
WHEN_IN_FOCUSED_WINDOW
用于registerKeyboardAction的常量,表示当接收组件位于具有焦点的窗口中或者本身是焦点组件时,应该调用该命令