2016-03-06 101 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