Windows剪貼板無法復制超大Excel數據?問題與超時設置有關

來源:cnBeta.COM

伴隨 Windows 發展已超 25 年的 Raymond Chen,剛剛在一篇《The Old New Thing》開發者博客中調侃了系統剪貼板(clipboard)存在的所謂“最大數據限制”Bug 。他以行數 30 萬+的一份大型電子表格文件為例,當用戶打開后選中了所有行、并將之復制到剪貼板后,就會在粘貼至另一應用程序時遇到問題。

訪問:

阿里云6月“云上特賣”活動上線 贏取最高500元代金券

假設這個應用程序使用了 Get-Clipboard-Data 函數,以檢索富文本格式的數據。那你就會遺憾地發現 —— 函數竟然返回了空值(NULL)。

許多人或許會猜測,該問題或與剪貼板的數據上限有關。

然而 Raymond Chen 指出,事情并非如此 。

剪貼板未預設可提取數據的最大值,其內容僅受可用內存和地址空間的限制。

為避免 Get-Clipboard-Data 調用失敗,主要有兩種替代方案 —— 一種是將數據直接放到剪貼板,另一種就聲明擁有特定類型的數據、而不直接將它放到剪貼板上。

對于很少被使用、或生成資源耗費過高的數據格式時,常見優化方案是利用剪貼板的延遲渲染(delay-rendered)。

然后在被詢問數據的格式時,數據源的使用者會收到一條 WM_RENDERFORMAT 消息 —— 某人想調用該數據,你是否選擇即時生成?

Raymon Chen 解釋稱:

Excel 本身無法以富文本格式運行,其放置在剪貼板上的此類數據,都是延遲渲染得來的。

然后當另一個程序要求提供富文本格式數據時,Excel 會給出這樣的回應 —— 哦,好的,請稍等,我這就幫你去拿。

據悉,富文本并不是數據表的最佳格式,因為它主要是為了文本而設計的。即使可以搞定簡單的表格,但更復雜的任務就跑不順了。

當系統要求剪貼板的所有者呈現數據時,它會發送消息并等待最多 30 秒返回。

若未能在 30 秒內生成數據,則系統會放棄請求、并導致 GetClipboardData 返回 NULL 空值。

本例的問題,在于原表實在太大,導致 Excel 需要超過 30 秒才能生成富文本格式表。后續開發團隊會設想通過特殊手段,來延長此類處理的等待時間。

關鍵詞: Windows Windows剪貼板無法復制超大Excel數據問題與超

推薦

直播更多》

關閉

資訊更多》

焦點

亚洲欧洲日韩综合| 亚洲精品视频在线观看免费| 亚洲制服丝袜精品久久| 亚洲视频在线播放| 亚洲AV无码AV男人的天堂| 亚洲成a人片在线观看日本| 亚洲国产无套无码av电影| 最新亚洲成av人免费看| 国产美女亚洲精品久久久综合| 亚洲一级片内射网站在线观看| 亚洲情侣偷拍精品| 精品国产亚洲男女在线线电影 | 亚洲日韩久久综合中文字幕| 亚洲最大的成人网站| 亚洲欧好州第一的日产suv| 亚洲熟女综合色一区二区三区| 亚洲日韩精品无码专区加勒比| 亚洲日本va一区二区三区| 亚洲国产精品无码第一区二区三区| 亚洲欧美日韩中文无线码| 亚洲av无码成人精品国产| 色偷偷亚洲男人天堂| 国产精品亚洲一区二区三区在线观看| 国产精品亚洲一区二区在线观看| 国产精品观看在线亚洲人成网| 亚洲国产成人影院播放| 国产亚洲情侣一区二区无码AV| 亚洲无人区午夜福利码高清完整版| 亚洲精品无码精品mV在线观看| 亚洲爱情岛论坛永久| 亚洲精品亚洲人成在线麻豆| 亚洲乱码一二三四区麻豆| 美女视频黄免费亚洲| 国产精品亚洲专区无码WEB| 亚洲男人在线无码视频| 亚洲精品无码鲁网中文电影| 亚洲一级二级三级不卡| 亚洲最大成人网色香蕉| 亚洲av色香蕉一区二区三区蜜桃| 亚洲欧洲精品成人久久曰影片 | 亚洲成人午夜电影|