Win10 下用 Codex 粘贴截图时,明明复制了图片,结果要么没反应,要么报错,要么出来一堆乱码?别急着怀疑截图工具或网络问题——大概率是剪贴板里的数据格式和 Codex 扩展的“胃口”对不上。说白了,系统往剪贴板里写的不一定是标准图像数据,可能只是一个文件路径或虚拟文件引用,Codex 根本认不出来。解决办法其实就三步:先看看剪贴板里到底藏了什么,再强制让它变成 Codex 能吃的格式,最后确认扩展配置没偷懒。

问题真正棘手的地方在于,不同截图工具往剪贴板里写的东西千差万别。有的写的是 Bitmap 或 PNG 这种纯图像数据,有的则只写了一个 FileDrop 或 FileGroupDescriptorW 这样的文件引用——Codex 只能解析前者。所以第一步,得先搞清楚你剪贴板里到底存了什么。
第一步:用 PowerShell 查清剪贴板里到底存了什么
打开 PowerShell(不需要管理员权限),一次性复制并执行以下全部命令:
Add-Type -AssemblyName System.Windows.Forms; $data = [System.Windows.Forms.Clipboard]::GetDataObject(); "FORMATS:"; $data.GetFormats() | ForEach-Object { $_ }; "CONTAINS_IMAGE=$([System.Windows.Forms.Clipboard]::ContainsImage())"; "CONTAINS_FILE_DROP=$([System.Windows.Forms.Clipboard]::ContainsFileDropList())"
如果输出中不含 【Bitmap】 或 【PNG】,而只出现 FileDrop、FileGroupDescriptorW、FileNameW 等文件路径类格式,说明你复制的不是“图像数据”,而是“文件引用”——Codex 无法直接解析这类内容。
第二步:确保截图以纯图像格式进入剪贴板
这一步是解决问题的关键,有几种稳妥的做法:
- 方法一:用系统自带的“截图工具”(Snipping Tool)或“截图和草图”(Snip & Sketch)截图,然后点击“复制到剪贴板”按钮(不是“保存”)。这样写入的就是 Bitmap 格式,Codex 可以直接识别。
- 方法二:如果你习惯用微信截图,截完后不要直接 Ctrl+V 往 Codex 里贴。先打开画图(Paint),Ctrl+A 全选,Ctrl+C 复制,再切回 Codex 输入框粘贴。这一步强制把微信写入的“虚拟文件”转成了标准 Bitmap。
- 方法三:直接用键盘快捷键 Win+Shift+S 截图,松开按键后图片会自动复制到剪贴板。注意:不要点击通知栏里的缩略图,否则又会触发 FileDrop 写入,导致 Codex 无法读取。
【关键提醒】 如果你是从远程桌面(比如 ToDesk、向日葵)或虚拟机窗口中截图,90% 的概率写入的是 DIB 或某种自定义格式,Codex 默认不支持。这时候最简单的办法就是先粘贴进画图,再复制一次,绕开这类非标准格式。
第三步:验证 Codex 是否已启用多模态支持
即使剪贴板数据格式正确了,如果 VS Code 里 Codex 扩展的多模态开关没打开,它依然不会去解析图像。所以最后一步,确认设置没问题:
- 打开 VS Code,按 Ctrl+Shift+P,输入 “Preferences: Open Settings (JSON)”,回车。
- 在 settings.json 文件中确认存在以下配置项:
"codex.enableMultimodal": true,
"codex.multimodalMaxSize": 5242880 - 如果不存在,手动添加这两行(注意用逗号和前一配置隔开),然后保存文件。
- 重启 VS Code——不重启配置不会生效,而且旧会话里的剪贴板缓存也不会刷新。
做完这一步,Codex 才会主动去解析剪贴板里的图像数据。如果还是没反应,那问题基本就锁定在前两步的剪贴板格式或截图来源上,回头再仔细检查一遍输出格式就行。
