想知道Windows Clipboard Internals

时间:2011-11-17 17:05:06

标签: windows clipboard internals systems-programming

我对学习Windows系统内部以及工作原理很感兴趣。我倾向于在Windows上学习系统编程。在这种情况下,我很想知道关于Windows剪贴板内部功能的几个方面:

  • 当我们选择一些文字,图像等并按下时会发生什么 Ctrl + C?
  • 当我们在不同的应用程序中按Ctrl + V时会发生什么?
  • 复制数据的确切位置在哪里?复制的数据是否进入内核模式内存 - 在所有进程中共享?
  • 如何将复制的数据提供给其他进程?

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

此外,分享讨论Windows剪贴板内部的所有资源。

1 个答案:

答案 0 :(得分:2)

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

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

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