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

时间:2012-10-19 13:44:58

标签: java event-handling

让我们说我正在阅读PDF文件或使用网络浏览器,我突然说了一句话。

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

1 个答案:

答案 0 :(得分:2)

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

Java可能不是这种行为的最佳工具。由于Java被构建为尽可能与操作系统无关,因此很难使用Java执行特定于操作系统的任务。话虽如此,这个可以用Java完成,但是会涉及“拉伸”Java并使用通过JNI,JNA或OS特定的实用程序桥(如AutoIt V3)与Java集成的非Java代码。这适用于Windows平台。该解决方案当然是特定于操作系统的,不能以跨平台的方式使用。


编辑1
您在评论中说明:

  

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

@blackgh:其中有瑕疵。您需要首先学习JNI(如果您还不熟悉C或C ++则更难)或JNA(在我看来更容易),然后学习制作键盘钩子,如果您想制作热键。这需要花费一些时间和精力,但是可行。如果这是我的项目,我需要快速完成它,它绝对必须与Java集成,如果它是用于Windows平台,我会使用AutoIt V3或类似的东西来创建热键的脚本作为最简单的解决方案,实际上我做过类似的事情,但你需要学习AutoIt语言(就像Basic一样)。