2016-03-06 141 views
1

通过使用Python和win32api,如何知道剪贴板中的当前数据类型?如何通过python知道剪贴板中的数据类型?

我知道我可以用这样的语句:

GetClipboardData(win32con.CF_TEXT) 

但如果我不知道数据的类型?

+0

因为我想获得在剪贴板中,不管数据是什么数据。 – Kingname

+0

为什么不做一些研究。如果你阅读你正在调用的函数的文档,你会发现整个剪贴板API。 –

+0

@大卫Heffernan非常感谢,我已经如何做到这一点。 – Kingname

回答

1

您可以使用EnumClipboardFormats来了解您可以获得的类型。

import win32clipboard as clipboard 
def getTheClipboardType(): 
    formats = [] 
    clipboard.OpenClipboard() 
    lastFormat = 0 
    while True: 
     nextFormat = clipboard.EnumClipboardFormats(lastFormat) 
     if 0 == nextFormat: 
      # all done -- get out of the loop 
      break 
     else: 
      formats.append(nextFormat) 
      lastFormat = nextFormat 
    clipboard.CloseClipboard() 
    return formats 

通过推出的功能,你会得到一个列表,它包含的数据的类型数量。如:

[13, 1, 49427, 49953, 49422, 49304, 16, 7] 
+0

这听起来像你真的想[IsClipboardFormatAvailable](https://msdn.microsoft.com/en-us/library/windows/desktop/ms649047.aspx),因为你正在寻找一个**特定的**剪贴板格式。 – IInspectable