加入剪贴板链最佳实践

2024-04-18

进一步到我的post https://stackoverflow.com/q/8695081/744588在自定义格式剪贴板上,我正在考虑编写自己的自定义剪贴板监视组件的可能性。

声明之前:

ClipboardWindow:=SetClipboardViewer(Form1.Handle);

我在示例代码中看到我研究了以下代码片段:

OpenClipboard(Form1.Handle); 
EmptyClipboard; 
CloseClipboard;

而其他的则根本不包含清洁代码。我很困惑。

我相信Clipbrd.TClipboard.Clear只是用 VCL 的方式做同样的事情。

My question is:

加入之前清除剪贴板时clipboard chain是强制性的 ?


不,不需要清除剪贴板。确实,你不应该。其他剪贴板监视器将对更新做出不必要的反应,并且用户可能想要粘贴您刚刚销毁的内容。 此外,剪贴板链监控不仅仅是将您自己添加到链中。您必须将事件传递到下一个窗口(来自 SetClipboardViewer 的结果句柄),并且您必须在应用程序退出时将自己从链中删除,不得失败。另外,您需要避免不必要地阻塞剪贴板。通常,这意味着等待注册剪贴板事件,直到您准备好实际处理事件。例如,如果您随后要打开一个对话框询问用户想要将数据存储在哪里、是否有许可证密钥等,请不要将其作为启动中的第一件事。

我在这里有一些技巧以及常见的陷阱:http://www.clipboardextender.com/developing-clipboard-aware-programs-for-windows/6 http://www.clipboardextender.com/developing-clipboard-aware-programs-for-windows/6

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

加入剪贴板链最佳实践 的相关文章

  • 我需要避免尝试更新连接到 TSQLQuery 的 Delphi TClientDataset 中的非物理字段

    概要 我的代码正在尝试更新 Delphi XE 中的非物理字段TClientDataset 连接到TSQLQuery以其SQL属性集 作为运行时的结果创建Open命令 我有一个TClientDataset连接到一个TDatasetProvi
  • 从剪贴板获取图像 Awt 与 FX

    最近 我们的 Java FX 应用程序无法再从剪贴板读取图像 例如 用户在 Microsofts Paint 中选择图像的一部分并按复制 我不是在谈论复制的图像文件 它们工作得很好 我很确定它过去已经有效 但我仍然需要验证这一点 尽管如此
  • win32 API 和 .NET 框架之间的选择

    我必须开发一个适用于 Windows 的应用程序 该应用程序将能够通过网络摄像头识别手势来控制鼠标 我将使用 vc 2008 进行开发 但我很困惑是使用 NET 框架还是核心 win32 API 性能对于我的应用程序非常重要 根据 Ivor
  • 使用 cryptoapi CryptImportKey 导入公钥时出错

    我想将公钥 blob 导入到 CSP 但发生了错误 BYTE pbData 0xEB 0x2A 0x38 0x56 0x86 0x61 0x88 0x7F 0xA1 0x80 0xBD 0xDB 0x5C 0xAB 0xD5 0xF2 0x
  • 如何使用 Python 与窗口的 GUI 交互?

    假设您想打开myapp exe 打开第三个菜单 然后选择第二个菜单项 即像用户使用键盘或鼠标一样 然后在对话框窗口中选择第二个按钮 pyahk https pyahk readthedocs io en latest and pyautog
  • 从 Delphi 调用 C# dll

    我用单一方法编写了 Net 3 5 dll 由Delphi exe调用 不幸的是它不起作用 步骤 1 使用以下代码创建 C 3 5 dll public class MyDllClass public static int MyDllMet
  • Delphi 流畅的界面

    使用上有什么优点和缺点流畅的界面 http en wikipedia org wiki Fluent interface在德尔福 流畅的界面应该会增加可读性 但我对此有点怀疑one包含很多链式方法的长 LOC 是否存在编译器问题 是否存在任
  • 如何使用 C++ 禁用另一个进程中窗口上的关闭按钮?

    我需要从另一个进程禁用窗口上的关闭按钮 我有它的句柄hWnd我尝试这样做 DWORD dwCStyle GetClassLongPtr hWnd GCL STYLE SetClassLongPtr hWnd GCL STYLE dwCSty
  • Delphi:写入后代类中私有祖先的字段

    我需要修复第三方组件 该组件的类具有私有变量 该变量由其后代主动使用 TThirdPartyComponentBase class private FSomeVar Integer public end TThirdPartyCompone
  • 调整大小时在窗口中绘图留下未绘制的边框

    我遇到的问题看似微不足道 但我找不到解决的方法 这里是 我有一个窗口 里面有一些图形 为了简单起见 我们假设它是一个实心绿色矩形 填充了窗口的整个客户区域 我希望每次窗口改变大小时都重新绘制这个矩形并填充整个窗口 我最初做的就是这样的 我已
  • 对象的引用计数

    在我的代码中 我使用一个小的数据存储类 它是在不同的地方创建的 为了避免内存泄漏并简化事情 我想使用引用计数 所以我这样做了 type TFileInfo class TInterfacedObject IInterface 并删除了我对
  • 如何使用 FieldDefs 在运行时创建新的 SQLite 文件和表?

    我正在使用 Delphi Seattle 在全新的 SQLite 文件中创建一个全新的表 并且仅使用 FieldDefs 和非可视代码 我可以使用 ExecSQL CREATE TABLE 语法创建一个表 但不能如下所示 我得到 没有这样的
  • win32上的64位Anaconda使用32位还是64位?

    我猜答案是 32 位 但我有点困惑为什么我什至可以在 win32 中安装 Anaconda 64 我曾经在 Anaconda 64 位上工作 但我刚刚意识到我的系统是 win32 这有时会产生一些异常 例如 请参阅我为 scipy 打开的这
  • 通过套接字发送动态数组(在记录内)?

    我正在尝试直接使用 SendBuf 将记录从服务器传输到客户端 但是 该记录有一个动态数组的成员 并且我在某处 在 SOF 中 读到 发送记录时 成员必须是静态的 固定长度 但问题是 我无法确定如何我会 将来 发送许多论点 我怎么解决这个问
  • ZLIB 解压缩

    我编写了一个小型应用程序 该应用程序应该解压缩以 gzip deflate 格式编码的数据 为了实现这一点 我使用 ZLIB 库 使用解压缩功能 问题是这个功能不起作用 换句话说 数据不是未压缩的 我在这里发布代码 int decompre
  • logback的“谨慎模式”是如何实现的?

    The 审慎模式 http logback qos ch manual appenders html prudentlogback 中的序列化所有 JVM 之间的 IO 操作 写入同一文件 可能运行在不同的主机上 在其他日志记录框架中 如果
  • 如何从该 JAVA 文件中提取 Delphi 类以与 Android 一起使用?

    我的Delphi XE7项目需要与FTDI FT311 Android 配件芯片 http www ftdichip com Products ICs FT311D html 他们帮助提供了一个 Android 演示 其中包括他们的 JAV
  • 阻止 IDE 自动添加使用单位

    我正在将 Lazarus 项目转移到德尔福西雅图 Lazarus 项目依赖于 40 多个单元 包括控件 并具有多种应用程序 在所有项目的使用条款中 他们使用了以下内容 uses Classes SysUtils Forms Controls
  • 将目录压缩为单个文件的方法有哪些

    不知道怎么问 所以我会解释一下情况 我需要存储一些压缩文件 最初的想法是创建一个文件夹并存储所需数量的压缩文件 并创建一个文件来保存有关每个压缩文件的数据 但是 我不被允许创建许多文件 只能有一个 我决定创建一个压缩文件 其中包含有关进一步
  • 通过win32检测多个登录用户

    使用标准 win32 api 检测多个用户登录的最佳方法是什么 我对我们的软件产品进行了升级 当多个用户登录时 该产品无法运行 我知道这是应该避免的事情 因为它很烦人 但该产品非常复杂 您必须相信我 当我说确实没有其他解决方案时 谢谢 为了

随机推荐

  • 如何读取cassandra数据而不区分大小写

    我需要从 cassandra 获取数据而不区分大小写 请帮我 Cassandra 中没有区分大小写的概念 所有数据都存储为byte 所以它甚至不是一个字符串 您可以制作自定义比较器 参见API http wiki apache org ca
  • 如何在 Excel 中根据验证结果进行条件格式设置?

    如果单元格无效 我想更改单元格的格式 在这种情况下 有效 意味着单元格未通过数据验证规则 我问这个问题是因为我在SO上找不到答案 我最终解决了它 我将发布我的答案 看看人们是否愿意发表评论或提供更好的答案 这是一个基本大纲 我想在本周晚些时
  • 局部变量和全局变量默认是如何初始化的?

    根据以下内容 我对吗 global A 引用被初始化为 null global int 为 0 local A 引用为空 local int 未初始化 global A x 和 local A x 均未初始化 谢谢你的帮助 A global
  • 如何在 IDE 中使用 Grails 依赖项

    So I finally https stackoverflow com questions 1867064 grails and local maven dependencies让我的依赖项与 Grails 一起工作 现在 我的 IDE
  • 如何创建行列总和为 1 和 0 的对称矩阵

    我试图找到一种优雅的算法来创建 1 和 0 的 N x N 矩阵 但有以下限制 每行每列之和必须为Q 可自由选择 对角线必须是 0 矩阵必须是对称的 矩阵不一定是随机的 然而 随机和非随机解都很有趣 因此对于 Q 偶数 只需使每一行成为向量
  • Spring验证字符串值是JSON

    我的配置文件中有一些值 它应该是 JSON 它将作为字符串加载 我希望 Spring 在注入之前验证该值确实是有效的 JSON 否则会抛出错误 我已经阅读了现有的验证注释 例如 NotNull Size Min Max Email NotE
  • 使用 Read::read_to_string 从 TcpStream 读取会挂起,直到远程端关闭连接

    我正在尝试实施Haskell IRC 机器人教程 https wiki haskell org Roll your own IRC bot在 Rust 中 我在阅读连接后服务器发送给我的内容时遇到一些困难 似乎发生的情况是 我连接并从服务器
  • C 中正确的 Hello World [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 正确的 C 语言 Hello World 程序是什么 从第一页开始 c 你好世界 的 Google 搜索结果 http www google c
  • 离线时如何将数据写入firebase?斯威夫特3

    在 tableView 中我有一个工作列表 这些作业可以由多个用户访问 因此我需要使用 FIRTransaction 根据第一次写入 FirebaseDatabase 的结果 我需要写入 不写入 Firebase 中的另一个路径 架构如下
  • Firebase 通知主题的限制

    我想为我的 Android 应用程序使用 Firebase 通知 我想知道主题数量是否有限制 或者可以订阅某个主题的用户数量 例如 我可以有 10000 个主题 每个主题有 100 万用户吗 主题或订阅的数量没有限制 主题最初推出后第一年的
  • 自己的图像作为范围内的滑块拇指。如何在CSS上设置样式

    如何使用 css 将图像设置为范围输入类型上的拇指滑块 它在 Internet Explorer 中不起作用 Chrome 和 Firefox 没问题 但在 IE 上我的图像被隐藏了还是怎么的 我用 ms thumb 并尝试将图像设置为背景
  • 使用 TEXT 或 VARCHAR 哪种 DATATYPE 更好?

    这个问题基于两件事表现 and size 使用 TEXT 或 VARCHAR 哪种 DATATYPE 更好 基于哪些性能会影响哪些性能会得到改善 这取决于你用它做什么 我不想给出如此笼统的答案 但这是事实 一般来说 尝试尽可能具体地获取数据
  • 调试时会忽略依赖项 org.apache.httpcomponents:httpclient:4.5,因为它可能与提供的内部版本冲突

    我试图将图像上传到服务器 由于我是 Android 新手 我正在尝试使用其他代码 这是我的错误 错误文件 https i stack imgur com rZnw6 jpg 这是我的活动文件 import android app Activ
  • Excel、ActiveCell.Row 取决于单击与按 Enter 键

    我的工作表中有 VBA 代码 它是工作表更改事件 Private Sub Worksheet Change 在此工作表上 我有带有数据验证的下拉菜单 所以我可以选择一个下拉菜单并选择 水果 做出选择后 工作表更改事件会记录我当前所在的行 并
  • Flex - 将滚动条的位置更改为 Horizo​​ntalList 组件的顶部

    默认情况下 Horizo ntalList 组件的水平滚动条位于底部 有没有办法重新定位它 使其位于顶部 为了清楚起见 我并不是指使用scrollToIndex或horizo ntalScrollPosition或类似的方法移动滚动位置 而
  • 在 Flex 中将字符串模式解析为日期

    flex 中是否有某种方法可以解析迄今为止的字符串 我希望它支持类似于 dateformatter 的自定义格式 使用 dateformatter 类 我们可以解析 formatString property 指定的各种字符串格式的日期对象
  • 您可以在 64 位 Windows 7 上使用 Mercurial “推送”到网络共享吗?

    我们正在从 Windows XP x86 升级到 Windows 7 x64 我正在测试当前工作流程的兼容性问题 目前 我们将中央 Mercurial 存储库存储在网络共享上 将副本克隆到我们的工作站 并将更改推送回基于网络的存储库 这在
  • 相当于 php call_user_func 的 javascript

    我发现了我已经实现的这个主题 参见已接受的答案 相当于 PHP 的 call user func 的 JavaScript https stackoverflow com questions 5818313 javascript equiv
  • 没有人拥有者(99 99)在FTP中由php功能引起?

    我有一个脚本 Joomla 可以在服务器上创建文件和目录 问题是它在所有者 99 99 无人 下创建它们 并且在没有服务器管理员帮助的情况下我无法通过 FTP 删除或修改它们 我认为那是move uploaded filephp 的函数 W
  • 加入剪贴板链最佳实践

    进一步到我的post https stackoverflow com q 8695081 744588在自定义格式剪贴板上 我正在考虑编写自己的自定义剪贴板监视组件的可能性 声明之前 ClipboardWindow SetClipboard