6

我编写了一个小型应用程序来测试 Excel VSTO 的功能。但是,我遇到了一个问题。

当我启动 Excel 时,我的剪贴板被清除。我已经通过 Google 追踪到这是插件(特别是 COM 插件)的问题,如果未正确初始化,则会自动清除剪贴板。对我来说不幸的是,我不知道如何在 VSTO 中保存剪贴板,而 Google 也没有多大帮助。我不会调用任何明显会清除剪贴板的函数。ThisAddin 函数中唯一的东西是一个 if/else 块,它从一些属性中读取并设置一些标志。

我已经考虑过将剪贴板上的数据复制到某个对象然后只是替换它的想法,但这看起来很hacky并且可能行不通。

谁能解释一下我的 VSTO 如何/为什么在 Excel 启动时清除剪贴板以及如何补救?

编辑:

在稍微深入一点之后,我认为它是我的个人测试插件是错误的。我发现它要么是 Team Add-In,要么是 Adob​​e Contribute。鉴于 Adob​​e 在这些方面的记录,我会继续说它可能是贡献加载项。感谢大家的回复。这将教我使用 Excel 的非香草安装进行 VSTO 练习。

我将保留此主题,以便更多人可以为 VSTO Excel 加载项(或办公套件的任何加载项)在启动时清除剪贴板的可能原因做出贡献。

4

3 回答 3

1

最好识别正在破坏剪贴板并将其删除的插件。

如果这不是一个选项,请查看 Chris 链接中的一些答案。我之前已经使用 Win32 API 完成了这项工作。我认为列出的答案中缺少的是对 OpenClipboard(http://msdn.microsoft.com/en-us/library/windows/desktop/ms649048%28v=vs.85%29.aspx)和 CloseClipboard 的调用。

于 2012-08-09T13:52:49.350 回答
0

COM 插件 Adob​​e PDF Maker,蓝牙模块在 Excel 启动时清除剪贴板。禁用它以停止此行为。

于 2015-02-26T14:53:07.107 回答
0

当存在复杂的数据类型时,尝试备份/恢复剪贴板是愚蠢的。您将生成不需要的剪贴板事件。在这里查看我之前的答案: https ://stackoverflow.com/a/2579846/289135

于 2012-08-09T13:20:56.703 回答