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

时间:2009-06-22 07:03:21

标签: c# windows clipboard ole

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

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

在c#中我试过了

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

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

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

谢谢, [R

1 个答案:

答案 0 :(得分:1)

解决了,你需要将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();

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