1

我在 System.Windows.Forms.Clipboard 中发现了一个错误,当从 Win 7 x64 上运行的 Forms 程序调用 Clipboard.Clear() 时,该错误会破坏 MS Office 应用程序(如 Outlook、Access 和 Excel)。这是一个非常严重的错误,导致 MS Office 程序损坏其数据库(例如 Outlook.pst)并停止运行,并向用户显示“已停止”消息。

我可以提供一个示例程序,该程序将始终产生此错误。我还有一个简单的解决方法:不要调用 System.Windows.Forms.Clipboard。; 参考演示核心并替换对 System.Windows.Clipboard 的调用。反而。

MS 通过 COM 接口通过非托管代码实现 System.Windows.Forms.Clipboard 类。他们的 Office 应用程序显然访问相同的 COM 对象,这就是损坏发生的方式。

4

0 回答 0