我有一段代码,它使用GetClipboardData
函数中的CF_UNICODETEXT
获取带有ctypes的windows剪贴板数据(文本)
from __future__ import print_function
import ctypes
import ctypes.wintypes as w
CF_UNICODETEXT = 13
CF_HDROP = 15
u32 = ctypes.windll.user32
k32 = ctypes.windll.kernel32
OpenClipboard = u32.OpenClipboard
OpenClipboard.argtypes = w.HWND,
OpenClipboard.restype = w.BOOL
GetClipboardData = u32.GetClipboardData
GetClipboardData.argtypes = w.UINT,
GetClipboardData.restype = w.HANDLE
GlobalLock = k32.GlobalLock
GlobalLock.argtypes = w.HGLOBAL,
GlobalLock.restype = w.LPVOID
GlobalUnlock = k32.GlobalUnlock
GlobalUnlock.argtypes = w.HGLOBAL,
GlobalUnlock.restype = w.BOOL
CloseClipboard = u32.CloseClipboard
CloseClipboard.argtypes = None
CloseClipboard.restype = w.BOOL
def get_clipboard_text():
text = ""
if OpenClipboard(None):
h_clip_mem = GetClipboardData(CF_UNICODETEXT)
text = ctypes.wstring_at(GlobalLock(h_clip_mem))
GlobalUnlock(h_clip_mem)
CloseClipboard()
return text
print(get_clipboard_text())
CF_HDROP
应该返回复制到剪贴板的文件列表,
但是我不能让它工作
如何让此代码返回文件列表而不仅仅是文本
如果
CF_HDROP
格式可用,可以使用DragQueryFile()
首先告诉您存在多少文件。然后,您可以对每个条目调用一次以获取文件名。例如:因此,如果您现在在Windows资源管理器中选择一些文件并使用
Copy
,脚本应该返回文件列表相关问题 更多 >
编程相关推荐