2009-06-22 18 views
0

Einige andere Windows-Anwendungen, mit denen ich versuche zu interagieren, speichert einen Dump der Zwischenablage in Datei. Um genauer zu sein, sucht es nach dem Format "Quelle einbetten" in der Zwischenablage und speichert es in der Zwischenablage. "Quelle einbetten" ist ein OLE-basiertes Format, das zum Beispiel beim Kopieren eines Bildes aus dem Pinsel erstellt wird.Wie neu gespeicherte "Embed Source" Zwischenablage Daten neu zu laden?

Gibt es eine Möglichkeit, den Inhalt dieser Dateien wieder in die Zwischenablage zu laden, so dass ich sie wieder in sagen, Pinsel oder Office-Programm einfügen könnte?

In C# Ich habe

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

wo Daten ein Array ist der Datei Bytes enthalten, aber es scheint, um es weiter zu wickeln, bevor die Daten in der Zwischenablage platzieren.

Kennt jemand einen guten Weg dazu (nicht unbedingt in C#)?

Danke, r

Antwort

1

gelöst, müssen Sie Clipboard.SetData ein Stream-Objekt, und dadurch ist es nicht wickeln Sie die Daten in einem anderen Format zu übergeben.

heißt

  System.IO.FileStream s = System.IO.File.Open("c:\\temp\\dxf.ole",System.IO.FileMode.Open); 

     Clipboard.SetData("Embed Source", s); 

     s.Close(); 

Dennoch ist einige Metadaten verloren, da Pinsel Sie nicht lassen fügen solche Reloaded Daten, aber das ist eine andere Frage.