2011-01-19 8 views
2

いいえ、クリップボードを介してデータを保存してから保存する

私は自動的にデータをクリップボードにコピーしてからメモリにコピーします。私がしたいのは、プログラムの実行前にクリップボードにあるデータを保存してから、クリップボードにコピーし直すことです。

Iデータは彼のようなクリップボードfromt得ることができます:私は、クリップボードに再びデータを入れたいときにデータをキャストすることになっていることをどのような形式

IDataObject currentClipboard = Clipboard.GetDataObject(); 

は、しかし、私が知っている必要がありますそれ?

これを行う方法はありますか?

ありがとうございました。

+1

'IDataObject.GetFormats(true)'は、データをネイティブに変換できるすべてのタイプストリングを返します。 – fjdumont

答えて

1

はこの記事を参照してください、それはあなたが必要なものを持っているかもしれません:

Strangeness with clipboard access

+0

パーフェクト、ありがとう。 –

2

あなたは確実に元の状態にクリップボードを復元することはできません。期間。シンプルなフォーマットで、あなたはそれを離れてしまうかもしれません。より複雑なフォーマット、特にOLEフォーマットやプライベートフォーマットになると、はるかに複雑になります。 Delayed Renderingを読み上げれば、データがまだクリップボード上にあるとは限りません。したがって、データを要求すると、データを保存できるので、時間がかかります。 Excelの5000個のセルを約24種類のフォーマットにレンダリングすることができますが、そのうちの大半は遅延レンダリングを使用しています(特定のフォーマットでデータを要求するまで実際にはクリップボードにないことを意味し、Excelはそれを生成する必要がありますオンデマンド)。
データを復元するたびに、登録されたすべてのクリップボードビューアに送信されるクリップボードの更新イベントが生成されます。このイベントは、あなたのshennanegansに反応します。 要約:しないでください。

+0

"except"句は余分です。決してない。とんでもない。ありえない。 –

+0

@ワーム - 合意。 –

関連する問題