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

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top