0

私がインターフェースしようとしている他のいくつかのWindowsアプリケーションは、クリップボードのダンプをファイルに保存します。より正確には、クリップボードで「埋め込みソース」形式を探し、見つかった場合はファイルに保存します。「埋め込みソース」は、たとえばペイントブラシから画像をコピーするときに作成される、OLE ベースの形式です。

これらのファイルの内容をクリップボードに再ロードして、ペイントブラシやその他のオフィス プログラムに貼り付ける方法はありますか?

C#で私が試した

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

ここで、データはファイルのバイトを含む配列ですが、データをクリップボードに配置する前にさらにラップしているようです。

誰かがそうする良い方法を知っていますか(必ずしもC#ではありません)?

ありがとう、r

4

1 に答える 1

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

それでも、paintbrushではそのようなリロードされたデータを貼り付けることができないため、一部のメタデータが失われますが、それは別の質問です。

于 2009-06-22T12:39:42.030 に答える