请求的剪贴板操作失败

Bry*_*yan 3 vb.net clipboard

我使用的是vb.net 2003,有些时候会出现这种错误.任何人都可以知道这个错误是如何产生的以及如何解决它?

错误:请求的剪贴板操作失败

Dav*_*vid 5

我用Google搜索了这个问题,看看我看到了什么,很多人都提出了这个问题,而且没有一个人能得到一个可靠的答案......

所以我转到MSDN文档并找到一条说明,解释了大多数提出此问题的人所描述的......当代码运行时用户切换到另一个应用程序时,通常会出现这种症状.该说明引用如下,其中包含以下文档的链接:

所有基于Windows的应用程序共享系统剪贴板,因此当您切换到另一个应用程序时,内容可能会发生变化.

对象必须是可序列化的,才能将其放在剪贴板上.如果将非可序列化对象传递给Clipboard方法,则该方法将失败而不会引发异常.有关序列化的更多信息,请参见System.Runtime.Serialization.如果目标应用程序需要非常特定的数据格式,则序列化过程中添加到数据的标题可能会阻止应用程序识别您的数据.要保留数据格式,请将数据作为Byte数组添加到MemoryStream,并将MemoryStream传递给SetData方法.

Clipboard类只能在设置为单线程单元(STA)模式的线程中使用.要使用此类,请确保使用STAThreadAttribute属性标记Main方法.

将图元文件格式与剪贴板一起使用时,可能需要特别注意.由于DataObject类的当前实现存在限制,因此使用较旧元文件格式的应用程序可能无法识别.NET Framework使用的元文件格式.在这种情况下,您必须与Win32剪贴板应用程序编程接口(API)进行互操作.有关详细信息,请参阅http://support.microsoft.com上的Microsoft知识库中的文章323530"剪贴板上的图元文件对所有应用程序不可见" .

http://msdn.microsoft.com/en-us/library/system.windows.forms.clipboard.aspx

有趣的是,这可以理解我在自己的应用程序中发现的奇怪行为.我有一个应用程序写入Excel电子表格(实际上,数百个,每个修改数百个单元格).我根本不使用剪贴板,只使用exop的Interop API,但是当它运行时,每次创建新的电子表格时我的剪贴板都会清除.在我的情况下,Excel正在弄乱剪贴板,即使没有明显的理由这样做.我会把它归结为我们凡人永远无法理解的那些神秘的Windows现象之一.

无论如何,多亏了你的问题,我想我理解我的问题,所以+1给你帮助我.