win10系统文本粘贴不-(win10无法复制粘贴文件)
win不粘贴10系统文本。
(win10不能复制粘贴文件)。
伴随Windows发展已超25年的RaymondChen,刚刚在一篇《TheOldNewThing》开发者博客嘲笑系统剪贴板(clipboard)所谓存在的最大数据限制Bug。他以行数30万以大型电子表格文件为例。当用户打开并将其复制到剪贴板上时,他们在粘贴到另一个应用程序时会遇到问题。
他以行数30万以大型电子表格文件为例。当用户打开并将其复制到剪贴板上时,他们在粘贴到另一个应用程序时会遇到问题。
假设使用此应用程序Get-Clipboard-Data以富文本格式检索数据的函数。然后你会后悔发现——函数回到了空值(NULL)。
很多人可能会猜测,这个问题可能与剪贴板的数据上限有关。
然而RaymondChen并非如此。
剪贴板未预设可提取数据的最大值,其内容仅限于可用内存和地址空间。
为避免Get-Clipboard-Data调用失败主要有两种替代方案——一种是将数据直接放在剪贴板上,另一种是声明有特定类型的数据,而不是直接放在剪贴板上。
对于很少使用或生成资源消耗过高的数据格式,常见的优化方案是使用剪贴板的延迟渲染(delay-rendered)。
然后,当被问及数据格式时,数据源用户将收到一个WM_RENDERFORMAT消息——有人想调用这个数据,你选择立即生成吗。
RaymonChen解释称:。
Excel它本身不能以富文本的形式运行,放置在剪贴板上的数据被延迟渲染。
当另一个程序要求提供富文本格式数据时,Excel会给出这样的回应——哦,好的,请稍等,我帮你拿。
富文本不是数据表的最佳格式,因为它主要是为文本设计的。即使可以搞定简单的表格,但更复杂的任务就跑不顺了。
当系统要求剪贴板的所有者显示数据时,它会发送信息并等待最多30秒返回。
若未能在30如果数据在秒内生成,系统将放弃请求并导致GetClipboardData返回NULL空值。
本例的问题在于原表太大,导致Excel需要超过30富文本格式表只能在秒内生成。后续开发团队将设想通过特殊手段延长等待时间。