You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中获取Windows剪贴板中右键复制文件的路径?

解决方案

现有Python实现方法

可以通过pywin32库直接调用Windows剪贴板API处理这类特殊内容,核心是识别剪贴板中的CF_HDROP格式——这是Windows系统专门用于传递文件列表的标准剪贴板格式。

核心实现步骤

  1. 监听剪贴板更新:创建一个隐藏窗口,接收系统发送的WM_CLIPBOARDUPDATE消息,以此感知剪贴板内容变化。
  2. 提取文件路径:当检测到剪贴板更新时,检查是否存在CF_HDROP格式,若存在则调用DragQueryFile函数解析出对应的文件路径。

代码示例

import win32clipboard
import win32gui
import win32api
import win32con

class ClipboardListener:
    def __init__(self):
        # 创建隐藏窗口用于接收剪贴板消息
        self.hwnd = win32gui.CreateWindowEx(
            0, win32gui.RegisterClass({'lpfnWndProc': self.wnd_proc}),
            'ClipboardListener', 0, 0, 0, 0, 0, 0, 0, None
        )
        # 注册剪贴板格式监听
        win32api.AddClipboardFormatListener(self.hwnd)
        # 启动消息循环
        win32gui.PumpMessages()

    def wnd_proc(self, hwnd, msg, wparam, lparam):
        if msg == win32con.WM_CLIPBOARDUPDATE:
            self.handle_clipboard_change()
        return win32gui.DefWindowProc(hwnd, msg, wparam, lparam)

    def handle_clipboard_change(self):
        win32clipboard.OpenClipboard()
        try:
            # 检查剪贴板是否包含CF_HDROP格式
            if win32clipboard.IsClipboardFormatAvailable(win32con.CF_HDROP):
                hdrop_handle = win32clipboard.GetClipboardData(win32con.CF_HDROP)
                # 获取文件数量并逐个提取路径
                file_count = win32api.DragQueryFile(hdrop_handle, -1)
                file_paths = [win32api.DragQueryFile(hdrop_handle, idx) for idx in range(file_count)]
                print("提取到的文件路径:", file_paths)
        finally:
            win32clipboard.CloseClipboard()

if __name__ == "__main__":
    ClipboardListener()

需研究的API/系统调用

如果需要深入定制或理解底层逻辑,重点研究以下Windows系统API:

  • 剪贴板格式检测:IsClipboardFormatAvailable(判断指定格式是否存在)、GetClipboardData(获取对应格式的数据句柄)。
  • 文件列表解析:DragQueryFile(从CF_HDROP句柄中提取单个文件路径)。
  • 剪贴板监听机制:AddClipboardFormatListener(较新的注册监听API)、SetClipboardViewer(旧版监听窗口注册方式)。
  • 窗口消息处理:WM_CLIPBOARDUPDATE(剪贴板内容变化时系统发送的通知消息)。

内容的提问来源于stack exchange,提问作者GreenTriangle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 17:12:14