копирование и вставка из / в буфер обмена с помощью python / win32 - PullRequest
4 голосов
/ 30 сентября 2010

Я скачал win32 для 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, но кое-что, что я скопировал раньше.

Что может быть не так?

Ответы [ 3 ]

6 голосов
/ 30 сентября 2010

Чтобы поместить данные в буфер обмена, вы хотите открыть буфер обмена, а затем вызвать EmptyClipboard до SetClipboardData.

2 голосов
/ 19 июня 2012

Вы также можете использовать модуль pyperclip.py, чтобы избежать зависимости win32. Это всего лишь один модуль Python, который является кроссплатформенным, и для Windows он делает вызовы DLL напрямую:

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

1 голос
/ 07 ноября 2011

Если все в порядке, чтобы не использовать win32, вы можете использовать Tkinter в стандартной библиотеке python, как показано здесь: Как скопировать строку в буфер обмена в Windows, используя Python?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...