Java-在当前程序窗口外获取选定文本

Java-在当前程序窗口外获取选定文本,java,event-handling,Java,Event Handling,假设我正在阅读PDF文件或使用web浏览器,我点燃了一个单词 我想要一个JAVA程序,独立程序中的程序,以获取所选文本 使用我的JAVA程序 听起来好像另一个程序将处于“活动”状态并具有焦点,并且您希望在后台使用Java捕获所选文本,可能使用热键组合 Java可能不是这种行为的最佳工具。由于Java被构建为尽可能不依赖操作系统,因此很难用Java完成特定于操作系统的任务。话虽如此,这可以用Java来完成,但需要“扩展”Java,并使用非Java代码,通过JNI、JNA或特定于操作系统的实用程序桥

假设我正在阅读PDF文件或使用web浏览器,我点燃了一个单词

我想要一个JAVA程序,独立程序中的程序,以获取所选文本
使用我的JAVA程序

听起来好像另一个程序将处于“活动”状态并具有焦点,并且您希望在后台使用Java捕获所选文本,可能使用热键组合

Java可能不是这种行为的最佳工具。由于Java被构建为尽可能不依赖操作系统,因此很难用Java完成特定于操作系统的任务。话虽如此,这可以用Java来完成,但需要“扩展”Java,并使用非Java代码,通过JNI、JNA或特定于操作系统的实用程序桥(如AutoIt V3)与Java集成,如果这是针对Windows平台的。这个解决方案当然是特定于操作系统的,不能以跨平台的方式使用


编辑1
您在评论中声明:


谢谢。。但是如何使用JNI或JNA来做到这一点呢


@布莱克:这就是问题所在。您需要首先学习JNI(如果您还不熟悉C或C++,则更难)或JNA(在我看来更容易),然后如果您想制作热键,则需要学习制作键盘挂钩。这需要花费一些时间和精力,但是可行的。如果这是我的项目,我需要快速完成,它必须与Java集成,如果是Windows平台,我会使用AutoIt V3或类似的工具,为热键创建一个脚本,作为最简单的解决方案,事实上我已经做了类似的事情,但您需要再次学习AutoIt语言(就像基本的一样).

谢谢。但是如何使用JNI或JNA来做到这一点呢?@Blackh:很高兴你能理解,但也请阅读Andrew的评论和我对它的回复。我可能正在做出一些假设,这使得你的问题比需要的更难解决。另外,请确保在你发布的任何问题的初始帖子中告诉你更多问题的细节这里。做D'n'D或复制/粘贴应该很容易。@Andrew:是的,这是真的。我假设OP想通过热键来做这件事,但我的假设很容易出错,因为他给我们的关于他的问题的信息目前非常有限。对于OP(原始海报),请给我们更多关于你问题的细节。