繁体   English   中英

在Linux上将文本粘贴到活动窗口

[英]Paste text to active window on Linux

我想编写一个应用程序,该应用程序在某些按键上将一些文本粘贴到活动窗口中。 如何使用Python或C ++做到这一点?

我想编写一个像守护程序一样工作的应用程序,并在一些全局按键上将一些文本粘贴到当前活动的应用程序(文本编辑器,浏览器和jabber客户端)中。 我想我将需要使用一些低级的X Window服务器API。

在多个应用程序界面之间进行交互可能很棘手,因此可能有助于提供有关您要执行的操作的详细信息。

但是,如果要使用剪贴板来完成此操作,则有一些选择。 在Windows上,Windows API提供了GetClipboardDataSetClipboardData 要从Python使用这些功能,您需要利用win32com

在Linux上,您有两个主要选项(我知道)与剪贴板进行交互。 PyGTK提供了一个gtk.Clipboard对象。 还有一个用于设置X“选择”的命令行工具XSel 你可以与使用Python借助XSEL互动os.popen子流程 有关使用gtk.Clipboard和xsel的信息,请参阅本指南

在实际使用剪贴板方面。 一个应用程序可能每隔一段时间轮询剪贴板一次以查找更改。

如果您想进入真正的“企业”架构,则可以使用消息总线(例如RabbitMQ)在两个应用程序之间进行通信。

如果您使用Tkinter(可在Linux,Mac OS X,Windows和任何地方使用的GUI库)并制作任何小部件(例如文本小部件),则复制( Ctrl + C )和粘贴( Ctrl + V )命令自动工作。 例如,以下代码显示了一个文本小部件,您可以在其中键入多行文本,然后将其复制并粘贴到其他应用程序或从其他应用程序(例如OpenOffice )复制粘贴。

from Tkinter import *
root = Tk()                 # Initialize GUI
t = Text(root)              # Create a text widget
t.grid()                    # Show the widget
root.mainloop()             # Start the GUI

我已经使用Windows和Linux / KDE 3.5测试了代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM