Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows是否回收/重用已注册的剪贴板格式ID 问题:_Windows_Clipboard - Fatal编程技术网

Windows是否回收/重用已注册的剪贴板格式ID 问题:

Windows是否回收/重用已注册的剪贴板格式ID 问题:,windows,clipboard,Windows,Clipboard,Windows有一个RegisterClipboardFormat函数,它返回一个id>0xC000我认为它们会在重新启动时重置。i、 富文本格式今天会给你一个答案,继续使用这个值直到你重新启动,然后你会得到一个不同的数字。我最近没有测试过这个,但我很确定我在过去做过一次,但它可能是20年前的事了 是的 在尝试使用后,我发现Windows7将在第一个有效条目*中注册新格式。此外,格式有时会被取消注册。这些未注册的句柄ID将成为未来格式的有效条目 *似乎从未注册0x100的倍数 **我还无法确定何

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,但这并不重要)