【问题标题】:Java / Transform key from keyboard or mouse to another keyJava /将键从键盘或鼠标转换为另一个键
【发布时间】:2020-11-16 14:26:11
【问题描述】:

我有一个 Swing Java 应用程序 (A),它在按下某个按钮时使用 Runtime.getRuntime().exec() 启动另一个应用程序 (B)。

是否可以设置某个 Key Hook,以便当应用程序 (B) 打开并处于活动状态时,它会更改按钮(例如,当您按下 “Q”,其实就是按下了“H”按钮,以此类推)。和鼠标类似的情况(例如,如果“Mouse Mid”或“Mouse Wheel”被按下,实际上另一个按钮被按下,例如“T”)。

理想情况下,它应该适用于所有操作系统,但主要适用于 Windows。

请告诉我是否有可能实现这一点,我很乐意提供任何建议或示例。

【问题讨论】:

  • 您需要在操作系统级别工作,因此每个平台的解决方案必须不同,不是吗?
  • @Abra 可能是的,我只是从未遇到过原生函数,对我来说这是一个新领域。我阅读并观看了有关 JNA / JNI / Jnativehook 库的视频。但是在我看到的所有示例中,只能捕获传入的键值。不知道该看哪个方向才能改变和转移。

标签: java jna mouse-hook jnativehook keyhook


【解决方案1】:

因为您想与操作系统的低级事件挂钩。它可能需要复杂的 JNI 实现,并且需要操作系统库。 Github 上有一个 Maven 库https://github.com/kristian/system-hook

它包含 Readme.md 文件中提到的所需库。我没试过这个。希望它应该工作。

【讨论】:

  • 这是一个很好的库来捕捉键/鼠标按下、释放等等。但是我仍然不清楚如何将传入的密钥更改为所需的?
猜你喜欢
  • 1970-01-01
  • 2017-06-08
  • 2012-02-07
  • 1970-01-01
  • 1970-01-01
  • 2011-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多