什么决定了新建上下文菜单中条目的图标?

jip*_*oe4 20 windows windows-registry icons context-menu windows-10

我不完全确定这是如何工作的。所以我可以通过注册表编辑器将项目添加到“新”上下文菜单(右键单击或按下菜单按钮时出现)。例如,如果我想创建一个新的 .cpp 文件条目,我可以导入一个如下所示的 .reg 文件:

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.cpp]
@="cpp"
[HKEY_CLASSES_ROOT\.cpp\ShellNew]
"NullFile"=""
[HKEY_CLASSES_ROOT\cpp]
@="C++ File"
Run Code Online (Sandbox Code Playgroud)

因此,我可以使用此方法设置扩展名和为其显示的描述。但是,我不确定我的描述旁边出现的图标是如何决定的。这就是我的意思:

在此处输入图片说明

我不确定 Windows 是否根据我设置为该扩展的默认程序自动选择这张图片,或者是否可以在注册表中手动设置。

这个图标可以手动设置吗?

Ben*_*n N 23

默认情况下,资源管理器将使用由文件类型设置的图标,但这可以通过IconPathShellNew键中放置一个值来覆盖。我通过使用Process Monitor 监视来自explorer.exe.

看起来 Windows 的现有条目使用该REG_EXPAND_SZ数据类型,但REG_SZ效果同样好,并且更容易包含在 REG 文件中。格式是包含图标的文件的完整路径,然后是逗号,然后是文件中图标资源的编号。在此屏幕截图中,我使用了%ProgramFiles%\Windows Mail\wab.exe,10

壳牌新条目

如您所见,这不会影响 New 列表之外的文件图标:

文件的图标与新建图标不同

要在 REG 文件中包含该更改,请在以下行正下方添加以下行"NullFile"=""

"IconPath"="%ProgramFiles%\\Windows Mail\\wab.exe,10"
Run Code Online (Sandbox Code Playgroud)

您需要重新启动 Explorer 才能使更改生效。