用户界面 - 如何在 Linux 中从 GUI 应用程序中提取文本内容



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

示例 1:

假设我打开了火狐浏览器,输入网址:www.google.com

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

示例 2:

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

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

简而言之,我想要的是找出是否有办法从GUI应用程序的任何小部件中提取文本内容

谢谢

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

一些不雅的想法:

您也许能够修改 X 窗口系统甚至某些工具包框架,以将特定窗口元素中显示的内容提取为文本。

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

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

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

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

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

管道

application1 | application2

顺便说一句,如果你想用URL在Ubuntu上启动Firefox,这里是Firefox命令行手册。

firefox "$url"

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

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

或者,如果您只想捕获用户输入,这也很容易通过激活 X11 记录扩展名来实现:将其放在您的/etc/X11/xorg.conf 中:

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

尽管它可能也很难使用,但请参阅 Xorg/X11 记录扩展失败的示例代码

相关内容

  • 没有找到相关文章

最新更新