捕获剪贴板python中的所有更改

时间:2018-10-10 08:58:52

标签: python winapi

如何在无限循环中使用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 :(得分:1)

看起来您的代码可以正常工作。 请说明您的问题。

如果需要监视剪贴板中的更改,还可以使用AddClipboardFormatListener API。 当然,当剪贴板中的某些内容发生实际更改时,您将必须使用诸如 PumpWaitingMessages PumpMessages 之类的方法来获取Windows消息。