
本文详解如何在 Windows 上使用 pywin32 正确将 HTML 片段写入剪贴板,解决 SetClipboardData(CF_HTML, ...) 无效果、Win+V 显示空白、无法粘贴富文本等问题。关键在于必须同时提供 HTML 格式和兼容的纯文本(UTF-16)格式。
本文详解如何在 windows 上使用 `pywin32` 正确将 html 片段写入剪贴板,解决 `setclipboarddata(cf_html, ...)` 无效果、win+v 显示空白、无法粘贴富文本等问题。关键在于必须同时提供 html 格式和兼容的纯文本(utf-16)格式。
在 Windows 平台使用 Python 向剪贴板写入 HTML 富文本时,仅调用 SetClipboardData(CF_HTML, data) 是不充分的——这会导致剪贴板看似“写入成功”(GetClipboardData(CF_HTML) 可读取),但在系统级粘贴(如 Win+V 历史面板、Word、Outlook 等应用)中完全不可见或无法粘贴。根本原因在于:Windows 剪贴板要求多格式共存以保证向不同目标程序的兼容性。HTML 格式(CF_HTML)必须与至少一种基础文本格式(如 CF_UNICODETEXT 或 CF_TEXT)一同注册,否则多数应用程序会忽略 HTML 数据,回退到空内容。
✅ 正确做法:双格式注册(HTML + UnicodeText)
以下是最小可运行、经实测有效的代码模板:
StartHTML
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











