我正在尝试与其他一些Windows应用程序进行交互,将剪贴板的转储保存到文件中。更准确地说,它在剪贴板中查找“嵌入源”格式,如果找到则将其保存到文件中。 “嵌入源”是一种基于OLE的格式,例如,当您从画笔复制图像时,会创建该格式。
有没有办法将这些文件的内容重新加载到剪贴板,所以我可以将它们粘贴到说,画笔或任何办公程序中?
在c#中我试过了
System.Windows.Forms.Clipboard.SetData("Embed Source", data);
其中data是一个包含文件字节的数组,但在将数据放在剪贴板上之前似乎还要进一步包装。
有人知道这样做的好方法(不一定是在C#中)吗?
谢谢, [R
答案 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();
然而,一些元数据丢失了,因为画笔不允许你粘贴这样重新加载的数据,但这是另一个问题。