开发者

copying and pasting from/to clipboard with python/win32

I downloaded the win32 for python 2.6 from this site.

This is the code to get/set the clipboard.

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开发者_如何学Go win32clipboard import *
        import win32gui, win32con
        test()

It works well with GetClipboarData, but SetClipboardData doesn't seem to work, as when I run the test(), I expect to get "hello" with ^V, but something that I copied before.

What might be wrong?


To put data in the clipboard, you want to open the clipboard, then call EmptyClipboard before SetClipboardData.


You can also use the pyperclip.py module to avoid requiring the win32 dependency. It's just a single python module that is cross platform, and for Windows it make DLL calls directly:

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


If it's OK to not use win32 you can use Tkinter in the python standard library, as shown here: How do I copy a string to the clipboard on Windows using Python?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜