c# - 在 VSTO 加载时保留剪贴板

标签 c# excel vsto clipboard

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

当我启动 Excel 时,我的剪贴板被清除。我已经通过谷歌追踪到这是加载项(特别是 COM 加载项)的问题,当未正确初始化时会自动清除剪贴板。对我来说不幸的是,我不知道如何在 VSTO 中保存剪贴板,谷歌也帮不上什么忙。我不会调用任何明显会清除剪贴板的函数。 ThisAddin 函数中唯一的东西是一个 if/else block ,它从一些属性中读取并设置一些标志。

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

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

编辑:

在更深入地追踪之后,我错了,它是我的个人测试插件。我发现它是 Team Add-In 或 Adob​​e Contribute。鉴于 Adob​​e 在这些方面的记录,我会继续说它可能是贡献插件。感谢大家的回复。这将教会我使用 Excel 的非 Vanilla 安装进行 VSTO 练习。

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

最佳答案

最好找出破坏剪贴板的插件并将其删除。

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

关于c# - 在 VSTO 加载时保留剪贴板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11879011/

相关文章:

c# - 如何处理硬件按钮。在 UWP 中按下后退?

c# - 角色在移动时振动 30fps

excel - 在另一个 Excel 工作表中查找一个 Excel 工作表中的值

c# - 捕获 Outlook 2013 发送事件

c# - “拒绝访问”到 Windows 应用程序中的 xml 文件

javascript - 无效日期 : Converting UTC to local

vba - 如果选择了很多单元格,则用户表单(微调器)返回类型不匹配的代码。 VBA Excel

vba - 如何计算VBA中的时间差?

visual-studio - Office 加载项重新安装错误 : Could not Load File or Assembly

visual-studio - 使用 Visual Studio 而不是内置 VBA 编辑器