如何从 Java 程序复制文本?

如何从 Java 程序复制文本?

我正在使用一个名为下载器v0.9.581,我希望从主滚动窗口复制完整文件和链接列表。JDownloader 无法将完整列表保存为文本文件。

我已经尝试使用所有程序用户有什么方法可以在运行时查看或复制不可编辑的 GUI 控件的内容?读取 ComboBox(或任何其他 Windows 控件)的内容以及谷歌搜索到的许多其他程序,例如获取窗口文本。但是没有什么能让我从这样的 Java 程序中复制全文。

我收到的一个建议是做一个PrintScreenOCR 来识别结果,但这不是一个可行/可扩展的解决方案。我如何从 JDownloader 复制全文?

答案1

Java 程序则不同,因为它们不使用本机控件,而是自定义绘制整个 UI。(默认 UI 工具包 Swing 就是这种情况;其他工具包(如 SWT)也使用本机控件,而古老的 AWT 就更不用说了。)有时它们会尝试模仿本机平台,有时它们有自己的外观和感觉。无论如何,Windows 特定的抓取器都无法工作,因为它们看到的只是一个带有一堆像素的窗口。

您可以尝试安装Java 访问桥,旨在实现可访问性。它不仅向操作系统提供像素,还向操作系统提供 Java 控件的文本内容,用于屏幕阅读器等辅助技术。这可能会使本机抓取器正常工作。或者您可以运行随附的 JavaMonkey 程序:

  1. 在主菜单上选择文件 | 刷新树
  2. 深入研究组件层次结构以找到主窗口(查找 [panel] 和 [viewport] 之类的内容)
  3. 右键单击,或从面板菜单
  4. 选择显示辅助功能信息

根据您的特定应用程序的具体结构,这可能包括控件中的所有可见文本,尽管格式和组织可能不是理想的。

相关内容