2009-06-22 81 views
0

我正试图与其他一些Windows应用程序接口,将剪贴板的转储保存到文件中。更确切地说,它会在剪贴板中查找“Embed Source”格式,如果找到,则将其保存到文件中。 “嵌入源代码”是一些基于OLE的格式,例如,当您从画笔复制图像时创建该格式。如何重新载入保存的“Embed Source”剪贴板数据?

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

在C#我已经试过

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

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

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

感谢, [R

回答

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(); 

然而,一些元数据丢失,因为画笔不会让你贴上这样的重新加载数据,但这是另外一个问题。