如何使用python-dbus获取桌面应用程序中的选定文本?
例如,我在gnome中打开一个pdf文件或一个网页,用鼠标双击一些文本,这样一个单词被选中,我怎样才能得到这个字在后台运行守护进程用python-dbus写?如何使用python-dbus获取桌面应用程序中的选定文本?
一些简单但工作的脚本非常赞赏。
谢谢!
你不需要d-Bus的,只是听为中点击修改(精选)剪贴板例如基于GTK:
import gtk
def _clipboard_changed(clipboard, event):
text = clipboard.wait_for_text()
clip = gtk.clipboard_get(gtk.gdk.SELECTION_PRIMARY)
clip.connect("owner-change", _clipboard_changed)
哇,太棒了!很棒!只需要一个额外的行: gtk.main() 让程序继续运行。 我想实现像通常的翻译软件的东西。我想我可以打开一个新窗口并将它放在鼠标周围。 只有当我可以插入动态注释到正在阅读的PDF文件,完美。 – jaimechen 2009-11-18 09:53:37
我遇到了gtk.gdk.SELECTION_PRIMARY问题。它只包含使用鼠标手动复制的剪辑。我有时会在bash终端中使用'xclip'来填充剪贴板,所以对我而言(对于鼠标和脚本剪贴板内容更新)的选择设置是'gtk.gdk.SELECTION_CLIPBOARD'。我还添加了一个条件,在传递内容之前检查'NoneType',否则在上面的变量'text'中会得到字符串“None”。 – hobs 2011-07-12 08:08:05
AFAIK,这种行为是依赖于应用程序:如果应用X不输出文字,你运气不好。使用D-feet或类似的内容来反思应用程序的方法。 – jldupont 2009-11-16 13:47:26