在Linux中从pygtk应用程序粘贴ctrl-v到另一个窗口
我正在使用pygtk、gtk剪贴板和keybinder。以下是我想要做的事情。
- 捕捉在其他窗口的文本框中按下的按键,比如在浏览器里
- 弹出一个gtk应用程序,处理一些用户输入
- 将处理后的数据复制到gtk剪贴板
- 将剪贴板中的数据粘贴到原窗口的文本框中
- 清空剪贴板
我已经能够捕捉到按键并弹出窗口了。我可以将数据复制到剪贴板,也可以关闭gtk应用程序并将焦点返回到原来的文本框。现在唯一的问题是我不知道如何完成第4步。目前,用户需要按ctrl-v才能将剪贴板中的内容粘贴到文本框里,我想去掉这个按键操作。
1 个回答
1
我想到的最好办法是用python-wnck来获取窗口的名称,然后用gnome-clipboard把它复制到剪贴板,接着再用xdotool通过命令和窗口名称来调用一个子进程。
paste_cmd = 'ctrl+v'
xdo_cmd = 'xdotool search "%s" windowactivate --sync key --clearmodifiers %s'
这个方法似乎能用,但如果有更本地化的解决方案会更好。