如何重新加载保存的“embedded源”剪贴板数据?

一些其他的Windows应用程序,我试图接口,将剪贴板的转储保存到文件。 更准确地说,它会在剪贴板中查找“Embed Source”格式,如果find,则将其保存到文件中。 “embedded源”是一些基于OLE的格式,例如,当您从画笔复制图像时创build的格式。

有没有办法重新加载这些文件的内容回剪贴板,所以我可以粘贴回来说,画笔或任何办公室程序?

在C#我试过了

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

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

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

谢谢,r

解决了,你需要传递Clipboard.SetData一个流对象,这样做,它不包裹在另一种格式的数据。

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

然而,一些元数据丢失,因为画笔不允许你粘贴这样的重新载入的数据,但这是另一个问题。