4

我有兴趣学习 Windows 系统内部结构和工作原理。我倾向于在 Windows 上学习系统编程。在这种情况下,我很想知道有关 Windows 剪贴板内部功能的一些事情:

  • 当我们选择一些文本、图像等并按 Ctrl + C 时,究竟会发生什么?
  • 当我们在不同的应用程序中按下 Ctrl + V 时,究竟会发生什么?
  • 复制的数据到底在哪里?复制的数据是否进入内核模式内存 - 在所有进程之间共享?
  • 复制的数据如何可供不同的进程使用?

我想从系统程序员的角度了解以上问题的答案。

此外,分享任何讨论 Windows 剪贴板内部结构的资源。

4

1 回答 1

2

我的网站上有一些很好的资源:http: //www.clipboardextender.com 它讨论了剪贴板查看器的实现、典型的错误、该做什么和不该做什么。

基本上,剪贴板是一个共享内存区域,您可以将数据复制到其中(又名“复制”,例如响应用户按下 Ctrl+C)并从中复制数据(又名“粘贴”)。数据可以同时以数十种常见格式和任意数量的程序员定义格式表示。

不可能完全“备份”剪贴板并将其恢复原样,而不影响其他程序,并导致负面的用户体验。查看“延迟渲染”以了解原因,并考虑当 Excel 用户在电子表格中复制 5000 行 x 255 列并按下 Ctrl+V 时会发生什么。了解这一点,您就会了解延迟渲染的魔力(和陷阱)。

于 2011-11-17T20:57:23.153 回答