使用Python/win32复制和粘贴剪贴板内容

5 投票
4 回答
14261 浏览
提问于 2025-04-16 04:47

我从这个网站下载了适用于Python 2.6的win32。

下面是用来获取和设置剪贴板的代码。

def test():
    OpenClipboard() 
    d=GetClipboardData(win32con.CF_TEXT) # get clipboard data
    SetClipboardData(win32con.CF_TEXT, "Hello") # set clipboard data
    CloseClipboard()

if __name__ == '__main__':
    if sys.platform == 'win32':
        from win32clipboard import *
        import win32gui, win32con
        test()

用GetClipboardData这个函数可以正常工作,但SetClipboardData好像不太行。当我运行test()时,我希望能通过按^V得到“hello”,结果却是我之前复制的内容。

这可能是什么问题呢?

4 个回答

1

如果你不想使用win32的话,可以使用Python自带的Tkinter库,具体可以参考这里的内容:如何在Windows上用Python将字符串复制到剪贴板?

3

你也可以使用pyperclip.py这个模块,这样就不需要依赖win32了。这个模块只有一个,是跨平台的,也就是说在不同的操作系统上都能用。对于Windows系统,它直接调用DLL。

http://coffeeghost.net/2010/10/09/pyperclip-a-cross-platform-clipboard-module-for-python/

8

要把数据放到剪贴板里,你需要先打开剪贴板,然后在调用 SetClipboardData 之前,先用 EmptyClipboard 清空剪贴板。

撰写回答