想了解 Windows 剪贴板内部结构

2024-04-25

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

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

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

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


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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

想了解 Windows 剪贴板内部结构 的相关文章

随机推荐

  • 如何将嵌套数据结构作为 LitElement 中的属性传递?

    在父组件中我有类似的内容 render gt const data a 1 b 1 2 3 of course this is a simplified version of the code return html
  • 为什么 Nginx 以相反的顺序提供客户端 SSL DN?

    我很好奇为什么某些 Web 服务器 例如 Nginx 以相反的顺序提供客户端 SSL DN Web 应用程序将 DN 发布到 Java Web 服务 该服务尝试创建 Javajavax naming ldap LdapName http d
  • 获取 UITableView 滚动到选定的 UITextField 并避免被键盘隐藏

    我有一个UITextField在表视图中UIViewController not a UITableViewController 如果表视图位于UITableViewController 表格会自动滚动到textField被编辑以防止它被键
  • 使用 Django 表单集保存具有唯一属性的多个对象

    TL DR 如何使用表单集保存 验证具有唯一属性的多个对象 假设我有一个Machine其中有多个Settings 参见下面的型号 这些设置在机器内应具有唯一的顺序 这可以通过定义一个来完成unique together属性中的Meta的类别
  • 创建通用 Json 序列化函数

    是否可以使用 Play Framework 2 2 在 Scala 中创建一个通用函数 将任意对象序列化为 JSON 而无需提供编写器或格式化程序 例如 此非通用代码将创建给定客户的 JSON 响应 import play api libs
  • this.props.history.push("/") 没有将我重定向到主页

    我正在尝试将此登录页面重定向到主页 但出于某种原因this props history push 没有重定向它 我有一个handleSubmit它应该在我按下登录按钮后运行 我不太确定发生了什么事 按登录按钮运行handleSubmit但是
  • 使用 casperjs 测试损坏的 html

    我试图在运行一些 CasperJs 浏览器测试之前运行一些设置例程 有一次我无法填写表单数据 因为有一些错误的 HTML 表单标签在表格中错误放置 table table
  • 内部接口?

    我对 Java 很陌生 我不明白这个结构是什么 我知道什么是接口以及如何定义 但在这种情况下 我真的不知道 你能说说是关于什么的吗 public interface WebConstants public interface Framewo
  • 在 Java 中实现常量的最佳方式是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动
  • 如何列出我在 Team Foundation Server 中签入的所有文件?

    我怎样才能列出最后一个x我签入到 TFS 的文件 Using the TFS PS Snapin included with the TFS PowerToys1 Get TfsItemHistory recurse stop 50 use
  • 在 mysql 中搜索带变音符号的阿拉伯语

    所以我有一个巨大的带有变音符号的阿拉伯语书面文本数据库 变音符号是阿拉伯语中附加到其他字符的小字符 例如 带变音符号 不带变音符号 我正在使用 mysql 和 laravel 在文本中搜索没有变音符号的特定单词 如何忽略搜索中的变音符号 看
  • Django:时区问题

    注意 我删除了之前存在的问题 并在此处仅提供相关信息 我们的数据库服务器 RH 指定了 TIME ZONE Europe London 并且 在 Django settings py 中 我们指定 TIME ZONE America New
  • MySQLi PHP:使用 MySQLi 检查 SQL INSERT 查询是否完全成功

    我有一个大函数 可以获取大量不同的数据并将其插入到多个表中 并非所有数据始终可用 因此并非所有 SQL INSERT 查询都会成功 我需要检查哪个 SQL INSERT 查询完全成功 哪个 SQL INSERT 查询没有对这些数据执行某些操
  • 从打字稿和 Angular 中的 Observable 获取字符串值

    我想从 Observable 获取字符串值并将该值从函数返回给调用者函数 例如 我有一组键 想一一获取所有键的值 字符串 并将其显示在具有菜单栏的 html 组件中 这是 ts 文件 key list component ts public
  • 优选的标签云可视化格式

    出于好奇 我很想知道什么标签云格式最适合发现越来越多 相关 内容的目的 我知道 3 种格式 但不知道哪一种最好 1 好吃的一个 http delicious com tag 颜色渐晕 2 The 标准一 http stephenslight
  • 重写 PHP 中的静态方法

    我有一个抽象页面类 如下所示 abstract class Page public static function display self displayHeader self displayContent self displayFoo
  • Puppeteer 页脚仅显示在最后一页

    我的 Puppeteer 的 footerTemplate 参数有问题 页脚仅显示在文档的最后一页 我希望它显示在文档的每一页上 嗯 页脚 也许我没有正确使用参数 这是我的 Puppeteer pdf 生成 const browser aw
  • Android O 设备中未出现 Google Smart Lock 对话框

    我最近将 GoogleSmartLock 与我的应用程序集成 不知何故 Android O 设备中没有出现保存对话框 并且 API 抛出以下错误 凭证 API 的保存确认对话框已被禁用 避免与 Android 自动填充功能发生冲突 这个选择
  • 删除列值 < 0 的 Pandas DataFrame 行

    我已经阅读了答案this https stackoverflow com questions 18172851 deleting dataframe row in pandas based on column value线程 但它没有回答我
  • 想了解 Windows 剪贴板内部结构

    我有兴趣学习 Windows 系统内部结构及其工作原理 我倾向于学习windows上的系统编程 在这种背景下 我很想知道有关 Windows 剪贴板内部功能的一些事情 当我们选择一些文本 图像等并按下时会发生什么 Ctrl C 当我们在不同