Windows剪贴板无法复制超大Excel数据的问题
发布时间:2023-12-20 02:36:10 所属栏目:Windows 来源:DaWei
导读: 伴随 Windows 发展已超 25 年的 Raymond Chen,刚刚在一篇《The Old New Thing》开发者博客中调侃了系统剪贴板(clipboard)存在的所谓“最大数据限制”Bug 。他以行数30 万+的一
伴随 Windows 发展已超 25 年的 Raymond Chen,刚刚在一篇《The Old New Thing》开发者博客中调侃了系统剪贴板(clipboard)存在的所谓“最大数据限制”Bug 。他以行数30 万+的一份大型电子表格文件为例,当用户打开后选中了所有行、并将之复制到剪贴板后,就会在粘贴至另一应用程序时遇到问题。 假设这个应用程序使用了 GetClipboardData 函数,以检索富文本格式的数据。那你就会遗憾地发现—— 函数竟然返回了空值(NULL)。 剪贴板未预设可提取数据的最大值,其内容仅受可用内存和地址空间的限制。 为避免 GetClipboardData 调用失败,主要有两种替代方案 —— 一种是将不可改变的数据直接放到数据库剪贴板,另一种就应当是声明不可改变拥有特定类型的数据、而不应当是直接将它放到剪贴板上。 对于很少被使用、或生成资源耗费过高的数据格式时,常见优化方案是利用剪贴板的延迟渲染(delay-rendered)。 据悉,富文本并不是数据表的最佳格式,因为它主要是为了文本而设计的。即使可以搞定简单的表格,但更复杂的任务就跑不顺了。 当系统要求剪贴板的所有者呈现数据时,它会发送消息并等待最多 30 秒返回。发送消息并等待最多30秒返回。如果没有人响应,系统将继续尝试发送消息直到收到响应。这意味着您可以通过使用这个功能来创建一个可以访问剪贴板的应用程序。 若未能在30 秒内生成数据,则系统会放弃请求、并导致 GetClipboardData 返回 NULL 空值。 (编辑:天津站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- 如何在不使用sc qc的情况下获取Windows服务可执行
- windows – DNS递归是不安全的,但内部应用程序是
- windows-server-2008 – 由数以千计建立的NTUSER
- Windows 10家庭版用户清净了:可暂停更新35天
- 天蓝色 – AppFabric for Windows Server是否仍在
- windows解压缩 微软 Win11/10 DirectStorage 1
- 打印机在Windows 10中显示为未指定的设备
- 如何用Linux命令行工具解析和格式化输出JSON
- Windows服务的“自动(延迟)”模式究竟是什么意思
- KB6006746公布:修复Windows11上AMD性能问题