C#保存,然后通过剪贴板恢复数据

好的,

所以我有一个程序可以自动将数据复制到剪贴板然后复制到内存中。 我想要做的是,在我的程序运行之前保存剪贴板上的数据,然后在完成我需要做的事情之后将其复制回剪贴板。

我可以从剪贴板中获取数据:

IDataObject currentClipboard = Clipboard.GetDataObject(); 

但是,当我想将数据重新放回剪贴板时,我是否需要知道数据的格式是什么?

有没有办法做到这一点?

谢谢。

看到这篇文章,它可能有你需要的东西:

剪贴板访问的奇怪之处

您无法将剪贴板可靠地还原到以前的状态。 期。 使用简单的格式,您可以逃脱它。 当你进入更复杂的格式,特别是OLE和私有格式时,它会复杂得多。 阅读延迟渲染,你会发现数据不一定是在剪贴板上。 因此,当您请求数据时,您可以将其存储起来,这将导致长时间的延迟。 考虑来自Excel的5000个单元格,可以渲染成大约24种不同的格式,其中大多数使用延迟渲染(这意味着它们不是真正在剪贴板上,直到您以特定格式请求数据,然后Excel必须生成它一经请求)。
即使你可以,每次恢复数据时,你都会生成一个剪贴板更新事件,该事件将发送给所有已注册的剪贴板查看器,这将对你的shennanegans作出反应。 总结:不要这样做。