WPF中使用System.Windows.Clipboard.SetText出现OpenClipboard 失败的解决办法

最近在WPF项目中遇到一个问题,当使用System.Windows.Clipboard.SetText时,在有些机器上遇到OpenClipboard 失败的错误,错误的详细信息如下:

System.Runtime.InteropServices.COMException (0x800401D0): OpenClipboard 失败 (异常来自 HRESULT:0x800401D0 (CLIPBRD_E_CANT_OPEN))
在 System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
在 System.Windows.Clipboard.Flush()
在 System.Windows.Clipboard.CriticalSetDataObject(Object data, Boolean copy)
在 System.Windows.Clipboard.SetDataInternal(String format, Object data)
在 System.Windows.Clipboard.SetText(String text, TextDataFormat format)
在 System.Windows.Clipboard.SetText(String text)

奇怪的是在有些机器上没有问题,都是相同的Windows 10 操作系统。后来发现使用System.Windows.Clipboard.SetDataObject替换System.Windows.Clipboard.SetText就没有问题了,问题似乎解决了,但原因是什么还不清楚。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容