这是一个在实际项目中遇到的问题,在VPN和远程桌面中,WPF程序对系统剪贴板进行操作的时候,发生CLIPBRD_E_CANT_OPEN异常。从异常本身来看,很明显,是COM有问题。
代码很简单 Clipboard.SetText(mSelection); 但是注意,这个是WPF的窗口,所以调用的是 System.Windows.Clipboard,而不是WinForm的System.Windows.Forms.Clipboard。
经过一番搜索,找到了根源:
http://stackoverflow.com/questions/68666/clipbrd-e-cant-open-error-when-setting-the-clipboard-from-net
http://blogs.microsoft.co.il/blogs/tamir/archive/2007/10/24/clipboard-setdata-getdata-tr