注册表Shell扩展:如何让MuiVERB文本显示为粗体?
资源管理器上下文菜单动词文本加粗问题
我遇到的不是严格意义上的编程问题,但已经试过多种方法。我的上下文菜单对应的注册表项如下:
AppliesTo=System.FileExtension:=.mp4Icon=WMPLoc.dll,-503MuiVERB=Otwórz(Otwórz是波兰语的“打开”)MultiSelectModel=Document
想请教:有没有注册表字符串标记可以让MuiVerb/@对应的文本显示为粗体?比如类似MuiVerb = System.BoldString("Otwórz")这样的写法?我查过微软Learn的《Context Menu Handlers》文档,知道规范动词不需要显示字符串,但不知道怎么实现,而且不想为了加粗额外创建注册表项。
⚠️ 注意:Otwórz文本不在资源管理器菜单的开头位置。
解答
Windows注册表本身没有直接支持通过MuiVerb或@字符串标记来让菜单文本加粗的语法,也不存在System.BoldString()这类内置格式化函数。
如果要实现菜单文本加粗,常规有两种方式,但都需要额外的注册表配置:
- 标记为规范动词:
系统默认的规范动词(如“打开”)会被资源管理器自动加粗。你可以尝试将MuiVerb替换为系统内置的本地化资源字符串(对应波兰语“打开”的@shell32.dll,-xxxx编号可通过资源查看工具确认),同时确保你的动词注册表项名称为open(即路径为...\shell\open)。但这种方式仅适用于系统认可的规范动词,自定义文本无法通过此方法加粗。 - 自定义上下文菜单处理程序:
编写实现IContextMenu接口的COM组件,在QueryContextMenu方法中自定义菜单文本的样式(包括加粗)。这种方式能完全自定义菜单,但需要编写代码并注册COM组件,操作相对复杂。
目前没有无需额外配置就能实现加粗的方法——Windows资源管理器的菜单样式由系统控制,注册表项仅负责提供文本和基础配置,不支持直接的格式化标记。
内容的提问来源于stack exchange,提问作者kubinka0505
相关产品推荐
相关产品推荐

