Windows是否回收/重用已注册的剪贴板格式ID 问题:
Windows有一个RegisterClipboardFormat函数,它返回一个id>0xC000我认为它们会在重新启动时重置。i、 富文本格式今天会给你一个答案,继续使用这个值直到你重新启动,然后你会得到一个不同的数字。我最近没有测试过这个,但我很确定我在过去做过一次,但它可能是20年前的事了 是的 在尝试使用后,我发现Windows7将在第一个有效条目*中注册新格式。此外,格式有时会被取消注册。这些未注册的句柄ID将成为未来格式的有效条目 *似乎从未注册0x100的倍数Windows是否回收/重用已注册的剪贴板格式ID 问题:,windows,clipboard,Windows,Clipboard,Windows有一个RegisterClipboardFormat函数,它返回一个id>0xC000我认为它们会在重新启动时重置。i、 富文本格式今天会给你一个答案,继续使用这个值直到你重新启动,然后你会得到一个不同的数字。我最近没有测试过这个,但我很确定我在过去做过一次,但它可能是20年前的事了 是的 在尝试使用后,我发现Windows7将在第一个有效条目*中注册新格式。此外,格式有时会被取消注册。这些未注册的句柄ID将成为未来格式的有效条目 *似乎从未注册0x100的倍数 **我还无法确定何
**我还无法确定何时取消注册格式的条件。我觉得您可以自己测试一下。只需制作超过4k的剪贴板格式ID,并跟踪返回的值。如果你得到一个你以前见过的身份证,你就会知道你的答案。如果它在4k之后开始返回失败,那么您也得到了答案。随着您继续前进,它是否会变得更慢也很有趣。@Mr.Llama我认为如果windows确实回收了ID,它至少会等到注册它的应用程序关闭,但这可能是乐观的。如果我没有得到一个完整的答案,我将用几个注册1K唯一格式的程序实例进行测试。你能澄清问题末尾的“上下文”一段吗?Windows没有为您提供测试特定格式是否已注册的方法。你说要搜索4000个ID是什么意思?@AdrianMcCarthy Windows会给你答案。它允许您测试ID并获取其格式,因此您可以搜索特定格式,但在每个可注册ID上调用它。如果windows不回收它们,那么我只需为每个已注册ID调用一次,并可以保留结果(在O(log n)树中)类似地,如果它以增量方式分配ID,我可以只测试自上次测试+1以来定义的ID。(还有4096个ID,但这并不重要)