欢迎访问生活随笔!

生活随笔

您现在的位置是:首页 > 形式科学 > 操作系统 > Windows

Windows

win10系统文本粘贴不-(win10无法复制粘贴文件)

发布时间:2022-10-18Windows 电脑专家
win不粘贴10系统文本。  (win10不能复制粘贴文件)。  伴随Windows发展已超25年的RaymondChen,刚刚在一篇《TheOldNewThing》开发者博客嘲笑系统剪贴板(clip

  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富文本格式表只能在秒内生成。后续开发团队将设想通过特殊手段延长等待时间。