如何在linux中从GUI应用程序中提取文本内容?
我想从GUI应用程序中提取文本内容,以下是两个示例: 例1: 假设我打开firefox,输入url:www.google.com 如何使用自己的应用程序从firefox中提取字符串“www.google.com” 例2: 打开计算器(使用gcalctool),然后输入1+1 如何从自己的程序中提取计算器的字符串“1+1” 简而言之,我想知道是否有一种方法可以从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只是示例,您只想知道如何将一个应用程序的输出传递给另
谢谢我相信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,非常感谢你,无论如何绝对不是问题,我编辑了标签和标题以反映你的意图。