gpt4 book ai didi

c# - 附加到 shell 扩展中的默认工具提示

转载 作者:太空狗 更新时间:2023-10-29 21:56:44 25 4
gpt4 key购买 nike

我有一个使用 SharpShell 构建的 shell 扩展.我想知道是否可以附加到您将鼠标悬停在文件上时看到的工具提示:

enter image description here

我已阅读并尝试使用 Shell Info Tip Handler ,但问题是它会用您设置的内容覆盖整个工具提示,而不是让您能够将一行文本附加到您通常会看到的默认工具提示,这是我想要的结果。

我感觉这在 SharpShell 中可能不受支持,因此,它会帮助我从人们那里获得关于我如何在 MSVC++ shell 扩展中另外解决这个问题的见解。

最佳答案

这是可能的,但不是通过 shell 工具提示扩展。相反,通过 shell 属性处理程序。记录了配方属性处理程序 here并可从 this repository 完整下载.这是它在 Windows 10 中的运行图片:

enter image description here

它本质上是通过将自己注册为属性处理程序来向 PerfectSteaks.recipe 文件添加额外的文件属性,例如 Recipe difficulty 的属性,其关键是 Microsoft.SampleRecipe.Difficulty 并且可以通过修改 HKCR 键轻松设置为在 Explorer 中显示 HKEY_CLASSES_ROOT\SystemFileAssociations\.recipeInfoTip(类型为 REG_SZ)设置为 prop:System.ItemType;System.Author;System.Rating;Microsoft.SampleRecipe.Difficulty这导致它显示。

属性存储在文件本身中。 .recipe 文件是一个 XML 文件,其中包含处理程序检索的实际难度:

<RecipeInfo>
<Difficulty>Hard</Difficulty>
<PreparationTime>5</PreparationTime>
<CookTime>20</CookTime>
<Yield>2 servings</Yield>
</RecipeInfo>

这在当今并不是什么独特的东西,因为许多文件格式确实提供了某种形式的额外内部 API 用于存储。如果您正在使用 Office 文件(我就是这样),您可能会注意到它们公开了用于存储在其中的属性,以便使用 OLE 进行持久化。 DSOFile.dll ( click here to download the source ) 最受 Office 文件和其他文件的关注。您将看到它尝试在 Office 文件格式本身内进行 OLE 存储,除非它尝试使用 Microsoft Office 元数据处理程序 进行存储。如果失败,它最终会尝试使用备用流(我自己不喜欢备用流,因为它们不会持续存在)。

也就是说,结合使用 shell 属性处理程序和与 DSOFile.dll 类似的策略,您可以合并一个解决方案,以正确的方式完成这项工作。

关于c# - 附加到 shell 扩展中的默认工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39398084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com