我在剪贴板方面遇到问题,每次尝试从 Excel 文件进行复制/粘贴操作时都会收到此错误消息。
代码中断,Clipboard.GetDataObject()
消息错误是这样的:
OpenClipboard Failed (Exception from HRESULT: 0x800401D0 (CLIPBRD_E_CANT_OPEN))
当我打开 Excel、编写一些文本然后尝试复制/粘贴时,我的 WPF 应用程序已经在运行。
我正在使用的代码是这样的:
private void SetClipboardData()
{
IDataObject data = Clipboard.GetDataObject();
IList result = GetDataForFileDropFormat( data );
if ( ( result != null ) && ( result.Count > 0 ) )
{
this._elementsClipboard = result;
this._sourceDrag = null;
this._sourceClipboard = null;
}
}
上面的函数在这个处理方法中被调用:
public void Handle_WM_DRAWCLIPBOARD( IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled )
{
SendMessage( this._nextClipboardViewer, msg, wParam, lParam );
// get data from clipboard
SetClipboardData();
handled = true;
}
我一直在搜索 MSDN 和 .NET 论坛,但没有找到解决此问题的方法。
有人可以帮我解决这个问题或让我知道我应该尝试什么吗?
谢谢!