0

我试图与之交互的其他一些 Windows 应用程序将剪贴板的转储保存到文件中。更准确地说,它在剪贴板中查找“嵌入源”格式,如果找到,则将其保存到文件中。“嵌入源”是一些基于 OLE 的格式,例如,当您从画笔复制图像时创建。

有没有办法将这些文件的内容重新加载回剪贴板,这样我就可以将它们粘贴回去,比如画笔或任何办公程序?

在c#中我试过了

System.Windows.Forms.Clipboard.SetData("Embed Source", data);

其中 data 是一个包含文件字节的数组,但它似乎在将数据放在剪贴板上之前将其进一步包装。

有人知道这样做的好方法吗(不一定在 C# 中)?

谢谢,

4

1 回答 1

1

解决了,您需要传递 Clipboard.SetData 一个流对象,这样做不会将数据包装在另一种格式中。

IE

            System.IO.FileStream s = System.IO.File.Open("c:\\temp\\dxf.ole",System.IO.FileMode.Open);

        Clipboard.SetData("Embed Source", s);

        s.Close();

然而,一些元数据丢失了,因为画笔不允许您粘贴此类重新加载的数据,但这是另一个问题。

于 2009-06-22T12:39:42.030 回答