使用python / win32从/向剪贴板复制和粘贴

时间:2010-09-30 03:35:18

标签: python winapi pywin32

我从this site下载了win32 for python 2.6。

这是获取/设置剪贴板的代码。

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()

它与GetClipboarData配合得很好,但SetClipboardData似乎不起作用,因为当我运行test()时,我希望用^ V得到“hello”,但我之前复制过的东西。

可能出现什么问题?

3 个答案:

答案 0 :(得分:6)

要将数据放入剪贴板,您需要打开剪贴板,然后在EmptyClipboard之前致电SetClipboardData

答案 1 :(得分:2)

您还可以使用pyperclip.py模块来避免需要win32依赖项。它只是一个跨平台的python模块,对于Windows,它直接进行DLL调用:

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

答案 2 :(得分:1)

如果可以不使用win32,可以在python标准库中使用Tkinter,如下所示:How do I copy a string to the clipboard on Windows using Python?