在VSTO负载上保留剪贴板

我已经写了一个小的应用程序作为testing,看看什么Excel VSTOs的能力。 但是,我遇到了一个问题。

当我启动Excel时,剪贴板被清除。 我已经通过谷歌追溯这是一个加载项(特别是COM加载项)的问题,当不正确初始化将自动清除剪贴板。 不幸的是,我不知道如何保存在VSTO剪贴板和谷歌没有太大的帮助。 我不会调用任何明显清除剪贴板的函数。 ThisAddin函数中唯一的一个是从某些属性读取并设置一些标志的if / else块。

我仔细考虑过将剪贴板上的数据复制到某个对象的想法,然后只是replace这个,但这似乎很hacky,可能无法正常工作。

任何人都可以在Excel启动时如何/为什么我的VSTO清除剪贴板,以及如何补救?

编辑:

在追踪更深入之后,我错误地认为这是我的人testing加载项。 我发现这是Team Add-In或Adobe Contribute。 鉴于Adobe的这些事情的logging,我会继续说,这可能是贡献加载项。 感谢大家的回复。 这将教会我如何使用Excel的非香草安装VSTO练习。

我将把这个话题保持开放,以便更多的人可以为VSTO Excel加载项(或任何用于办公套件的加载项)在开始时清除剪贴板的可能原因做出贡献。

这将是最好的识别垃圾的剪贴板插件,并删除它。

如果这不是一个选项签出Chris的链接中的一些答案。 我以前使用Win32 API做过这个。 我认为列出的答案中缺less的是对OpenClipboard( http://msdn.microsoft.com/en-us/library/windows/desktop/ms649048%28v=vs.85%29.aspx )和CloseClipboard的调用。

当存在复杂的数据types时,试图备份/恢复剪贴板是愚蠢的。 你会产生不需要的剪贴板事件。 请参阅我的在先答案: https : //stackoverflow.com/a/2579846/289135

COM插件Adobe PDF Maker,蓝牙模块在Excel启动时清除剪贴板。 禁用它来停止这种行为。