首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从linux中的GUI应用程序中提取文本内容?

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

Stack Overflow用户
提问于 2011-05-17 12:24:31
回答 3查看 1.3K关注 0票数 8

我想从GUI应用程序中提取文本内容,这里有两个示例:

示例1:

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

如何使用自己的应用程序从火狐中提取字符串"www.google.com“?

示例2:

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

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

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

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-17 13:14:17

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

一些不雅的想法:

您可以修改X window system甚至是一些工具包框架,以提取在特定窗口元素中显示为文本的内容。

您可以截图并使用OCR库将像素转换回感兴趣区域的文本。

您可以重新编译感兴趣的应用程序,以添加某种向它们提问的机制。

您可以使用类似于xtest的方法来注入事件,突出显示感兴趣的区域并将其复制到剪贴板。

票数 4
EN

Stack Overflow用户

发布于 2011-05-17 13:03:57

我相信firefox和gcalctool只是一个例子,你只是想大致知道如何将一个应用程序的输出传递给其他应用程序。

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

管道

代码语言:javascript
复制
application1 | application2

顺便说一句,如果你想在Ubuntu上用网址启动火狐,这里是Firefox command line manual。例如:

代码语言:javascript
复制
firefox "$url"

其中,$url是其值可以为www.mozilla.org的变量

票数 2
EN

Stack Overflow用户

发布于 2011-05-17 21:55:32

这听起来很难。假设您正在运行X11,您可以很容易地抓取窗口图片(参见"man xwd");但是,除非文本被选中并因此被复制到剪贴板,否则没有简单的方法可以访问文本。

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

代码语言:javascript
复制
Section "Module"
        Load  "record"
        #Load other modules you need ...
 EndSection

尽管它可能也很难使用,但请参阅example code for Xorg/X11 record extension fails

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6026222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档