Захват каждого изменения в буфере обмена Python - PullRequest
0 голосов
/ 10 октября 2018

Как мне распечатать каждое изменение в буфере обмена, используя python win32api или ctypes в бесконечном цикле?

Я пытался использовать это:

import ctypes

user32 = ctypes.windll.user32
kernel32 = ctypes.windll.kernel32

def getClipboard(user32, kernel32):

   while 1:
       user32.OpenClipboard(0)
       if user32.IsClipboardFormatAvailable(1):
           data = user32.GetClipboardData(1)
           data_locked = kernel32.GlobalLock(data)
           clipText = ctypes.c_char_p(data_locked)
           kernel32.GlobalUnlock(data_locked)
           text = clipText.value
       else:
           text = ""
       user32.CloseClipboard()

       print text

getClipboard(user32, kernel32)

Но это не работает

1 Ответ

0 голосов
/ 10 октября 2018

Похоже, ваш код работает нормально.Пожалуйста, объясните вашу проблему.

Еще одна вещь, если вам когда-нибудь понадобится следить за изменениями в буфере обмена, используйте AddClipboardFormatListener API.Конечно, вам придется использовать что-то вроде PumpWaitingMessages & PumpMessages , чтобы получить сообщение Windows, когда что-то действительно изменяется в буфере обмена.

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