我想知道如何才能正确实现上述需求,谢谢?
参考:
//我实现的代码如下(有时正常,有时异常):
//注:此代码经调试后,发现异常出现极不稳定,不知何故
//出现的异常1:System.Runtime.InteropServices.ExternalException
//ErrorCode: -2147221040
//出现的异常2:数据结不正确
//所有代码运行无异常,但恢复备份后发现其内容不是备份中保存的内容
//Code:
//备份当前系统Clipboard的状态
System.Windows.Forms.DataObject oldData =
(System.Windows.Forms.DataObject)System.Windows.Forms.Clipboard.GetDataObject();
//使用系统Clipboard来完成相关功能
//代码与问题无关,省略……
//恢复Clipboard,使用之前的备份
System.Windows.Forms.Clipboard.SetDataObject(oldData, true);
�������ϵͳ��Դ�������ͨ�� GetDataObject ��õ���� .NET Framework ��û�а취��֤�������ڡ��������� .NET Framework ��ȷ�ı����˶�����ݣ����ⲿ�����ĸ�������
���ڲ��������Ѿ����ֻ�ȫ����Ч������˵��������а�����������·Żؼ����ʱ���þ���Ѿ�ʧЧ������ʱ�����ṩ����ݾͿ�������쳣��
��������������������Ҫԭ����Ϊ������������͵� OLE ����ֻ�����Ķ������� .NET Framework ������ά����������������˵�����⡣
��������Ϊ���������ڣ�ʵ��������뻹��Ҫ����������ܵó����ȷ�Ľ��ۡ���֪���ܷ������лл����
"chenjian" <chen...@discussions.microsoft.com> д����Ϣ
news:D936694F-4C8E-48C6...@microsoft.com...
> ��ã�����ʵ�ֵĹ��������ǣ�
> 1���Ƚ�ϵͳClipboard�е������������ݡ�
> 2��ʹ��ϵͳClipboard�������ع��ܡ�
> 3���ָ�Clipboard��ʹ��֮ǰ�ı��ݡ�
>
> ����֪����β�����ȷʵ����������лл��
>
> ���
> //��ʵ�ֵĴ������£���ʱ����ʱ�쳣����
> //ע���˴��뾭���Ժ����쳣���ּ����ȶ�����֪�ι�
>
> //���ֵ��쳣1��System.Runtime.InteropServices.ExternalException
> //ErrorCode: -2147221040
>
> //���ֵ��쳣2����ݽ��ȷ
> //���д����������쳣�����ָ����ݺ��������ݲ��DZ����б��������
>
> //Code:
> //���ݵ�ǰϵͳClipboard��״̬
> System.Windows.Forms.DataObject oldData =
> (System.Windows.Forms.DataObject)System.Windows.Forms.Clipboard.GetDataObject();
>
> //ʹ��ϵͳClipboard�������ع���
> //�����������أ�ʡ�ԡ���
>
> //�ָ�Clipboard��ʹ��֮ǰ�ı���
> System.Windows.Forms.Clipboard.SetDataObject(oldData, true);