2009-06-22 4 views
0

некоторые другие приложения Windows, с которыми я пытаюсь взаимодействовать, сохраняет дамп буфера обмена в файл. Чтобы быть более точным, он ищет формат «Вставить источник» в буфер обмена, и если он найден, он сохраняет его в файл. «Вставить источник» - это некоторый формат на основе OLE, который создается, например, при копировании изображения из кисти.Как перезагрузить сохраненные данные «Вставить источник» в буфер обмена?

Есть ли способ перезагрузить содержимое этих файлов обратно в буфер обмена, чтобы я мог вставить их обратно в сказку, кисть или любую офисную программу?

В C# Я попытался

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

где данные массив, содержащий байты файла, но это, кажется, чтобы обернуть его дальше, перед размещением данных в буфер обмена.

Знает ли кто-нибудь хороший способ сделать это (не обязательно в C#)?

Спасибо, г

ответ

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

Тем не менее, некоторые метаданные теряются, так как кисточка не позволяет вставлять такие Reloaded данные, но это другой вопрос.