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

4

假设我正在阅读PDF文件或使用网络浏览器,并且我突出显示了一个单词。

我想在JAVA程序中,独立程序中的过程,使用我的JAVA程序来获取所选文本。


1
进行拖放或复制/粘贴应该很容易。 - Andrew Thompson
1
@Andrew:没错,我也是这么认为的。我假设 OP 想通过热键来完成这个操作,但是我的假设可能是错误的,因为他目前提供给我们的问题信息非常有限。对于 OP(原帖发布者),请给我们更多关于你的问题的细节。 - Hovercraft Full Of Eels
1个回答

3
看起来其他程序将是“活动的”并且拥有焦点,您希望在后台使用Java捕获所选文本,可能使用热键组合。对于此类行为,Java可能不是最好的工具。由于Java被构建为尽可能系统不可知,因此使用Java执行特定于操作系统的任务很困难。话虽如此,这可以使用Java完成,但需要使用JNI、JNA或针对某个操作系统的实用程序桥接,例如AutoIt V3(如果要面向Windows平台)。当然,这种解决方案将是特定于操作系统的,不能以跨平台方式使用。
编辑1: 您在评论中指出:
谢谢.. 但是如何使用JNI或JNA来实现呢?
@blackgh: 这就是关键所在。如果要制作热键,首先需要学习JNI(如果您不熟悉C或C++则更加困难)或JNA(我认为更容易),然后学习如何创建键盘钩子。这需要一些时间和精力,但是可以做到。如果这是我的项目,并且需要快速完成并且绝对必须与Java集成,并且如果它面向Windows平台,则会选择AutoIt V3或类似工具来创建热键脚本作为最简单的解决方案。实际上,我已经做过类似的事情,但是再次需要学习AutoIt语言(它类似于Basic)。

谢谢..但如何使用JNI或JNA来做到这一点呢? - blackgh
1
@blackgh:很高兴你理解了,但是请阅读安德鲁的评论和我的回复。我可能会做出一些假设,使你的问题比必要的更加困难。此外,请确保在您发布任何问题的初始帖子中告诉更多有关您问题的细节。 - Hovercraft Full Of Eels

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接