欢迎访问宙启技术站
智能推送

Python编写Win32Clipboard获取剪切板中文件列表的方法

发布时间:2023-12-11 15:36:17

在 Python 中,可以使用 win32clipboard 模块来访问 Win32 剪贴板。然后,我们可以使用 CF_HDROP 格式来检索剪贴板中的文件列表。

import win32clipboard as clipboard
import win32con

def get_file_list_from_clipboard():
    clipboard.OpenClipboard()
    dropfiles = clipboard.GetClipboardData(win32con.CF_HDROP)
    
    file_list = []
    for i in range(win32con.DragQueryFile(dropfiles, -1)):
        filename = win32api.DragQueryFile(dropfiles, i)
        file_list.append(filename)
    
    clipboard.CloseClipboard()
    
    return file_list

上述代码中的 get_file_list_from_clipboard 函数打开剪贴板,然后使用 CF_HDROP 格式来获取剪贴板数据。CF_HDROP 是 Windows 下用于文件拖放操作的一种数据格式,可以用来获取拖放到剪贴板上的文件列表。然后,我们使用 DragQueryFile 函数来从 dropfiles 中获取文件名,并将其添加到 file_list 列表中。最后,我们关闭剪贴板,并返回文件列表。

下面是一个使用例子,展示如何使用上述代码从剪贴板中获取文件列表:

file_list = get_file_list_from_clipboard()
print("Files on clipboard:")
for file in file_list:
    print(file)

在这个例子中,我们调用 get_file_list_from_clipboard 函数来获取剪贴板中的文件列表,然后将其打印出来。

请注意,在使用此方法前,确保安装了 pywin32 库,然后导入相关模块。此外,此代码也仅适用于操作系统为 Windows 的情况下。