Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

如何将Clipboard的内容缓存下来以用于恢复

8 views
Skip to first unread message

chenjian

unread,
Dec 10, 2009, 11:11:01 PM12/10/09
to
您好,我想实现的功能需求是:
1、先将系统Clipboard中的内容做个备份。
2、使用系统Clipboard来完成相关功能。
3、恢复Clipboard,使用之前的备份。

我想知道如何才能正确实现上述需求,谢谢?

参考:
//我实现的代码如下(有时正常,有时异常):
//注:此代码经调试后,发现异常出现极不稳定,不知何故

//出现的异常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);

Sakura

unread,
Dec 12, 2009, 6:42:49 AM12/12/09
to
��ã��������������Ҫ������OLE�Լ������ݵĴ����ϡ�

�������ϵͳ��Դ�������ͨ�� 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);


0 new messages