如何在linux中从GUI应用程序中提取文本内容?

如何在linux中从GUI应用程序中提取文本内容?,linux,user-interface,ubuntu,Linux,User Interface,Ubuntu,我想从GUI应用程序中提取文本内容,以下是两个示例: 例1: 假设我打开firefox,输入url:www.google.com 如何使用自己的应用程序从firefox中提取字符串“www.google.com” 例2: 打开计算器(使用gcalctool),然后输入1+1 如何从自己的程序中提取计算器的字符串“1+1” 简而言之,我想知道是否有一种方法可以从GUI应用程序的任何小部件中提取文本内容 谢谢我相信firefox和gcalctool只是示例,您只想知道如何将一个应用程序的输出传递给另

我想从GUI应用程序中提取文本内容,以下是两个示例:

例1:

假设我打开firefox,输入url:www.google.com

如何使用自己的应用程序从firefox中提取字符串“www.google.com”

例2:

打开计算器(使用gcalctool),然后输入1+1

如何从自己的程序中提取计算器的字符串“1+1”

简而言之,我想知道是否有一种方法可以从GUI应用程序的任何小部件中提取文本内容


谢谢

我相信firefox和gcalctool只是示例,您只想知道如何将一个应用程序的输出传递给另一个应用程序

在Linux上有很多方法可以做到这一点,例如:

管道

application1 | application2
顺便说一句,如果你想在Ubuntu上用URL启动firefox,这里是最简单的方法。例如:

firefox "$url"

其中,$url是一个变量,其值可以是
www.mozilla.org

,我认为没有通用的方法可以做到这一点,至少不是一种非常优雅的方法

一些不雅的想法:

您可以修改X窗口系统,甚至修改一些工具箱框架,以提取特定窗口元素中显示的文本

你可以拍摄一个屏幕截图,使用OCR库将像素转换回感兴趣区域的文本

你可以重新编译感兴趣的应用程序,添加一些问问题的机制


您可以使用诸如xtest之类的工具注入事件,突出显示感兴趣的区域并将其复制到剪贴板。

这听起来很难。假设您正在运行X11,您可以非常轻松地抓取一张窗口图片(请参阅“man xwd”);但是,除非选中文本并将其复制到剪贴板,否则无法轻松访问文本

或者,如果您只想捕获用户输入,那么通过激活X11记录扩展也很容易做到:将其放在/etc/X11/xorg.conf中:

Section "Module"
        Load  "record"
        #Load other modules you need ...
 EndSection

尽管它可能也很难使用,请参见

事实上,我想知道的是,是否有办法从GUI应用程序的任何小部件中获取文本内容,而不仅仅是firefoxWell的url,至少问题的标题并没有说明您只想从GUI应用程序中提取内容。无论如何,如果你感兴趣的话,这里是如何在脚本之间共享变量:请原谅我糟糕的英语:P,非常感谢你,无论如何绝对不是问题,我编辑了标签和标题以反映你的意图。