无法在注册表中设置DefaultIcon

joe*_*cii 5 windows registry icons regedit

我正在尝试更新Windows注册表以为我的自定义文件扩展名添加图标,到目前为止我还没有成功.我当前的版本最接近这个stackoverflow问题.不幸的是,我的文件图标仍然是通用的内置Windows图标之一(见下面的截图).

在此输入图像描述

在这一点上,我最好的猜测可能是我的.ICO文件有问题.我在Dropbox上分享了它

这是我正在进行的完整注册表更新regedit.如您所见,我还将文件扩展名与.bat文件关联以便执行.这很好用.此外,Windows资源管理器中显示的类型是PartQuest Archive,它也很棒(参见上面的屏幕截图).唉,图标的最后一个条目没有骰子.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\pqunzip]
@="PartQuest Archive"

[HKEY_CLASSES_ROOT\pqunzip\shell]

[HKEY_CLASSES_ROOT\pqunzip\shell\open]

[HKEY_CLASSES_ROOT\pqunzip\shell\open\command]
@="\"C:\\MentorGraphics\\PartQuestTools\\SDD_HOME\\common\\win32\\scripts\\pqunzip.bat\" \"%1\""

[HKEY_CLASSES_ROOT\.pqz]
@="pqunzip"

[HKEY_CLASSES_ROOT\.pqz\DefaultIcon]
@="\"C:\\MentorGraphics\\PartQuestTools\\SDD_HOME\\common\\win32\\config\\decrypted.ico\""
Run Code Online (Sandbox Code Playgroud)

我还尝试,1在文件名末尾添加一个文件名,因为.ICO文件中可能有两个图标嵌入其中.这没有什么区别.

为了更好的衡量,我在每次更改后都重新启动.我不确定这是否有必要.

来自Windows专家的任何提示肯定会受到赞赏!

joe*_*cii 2

因此,我根据 7Zip 的文件关联进行了一些逆向工程来找出问题所在。事实证明,DefaultIcon密钥条目应该是应用程序的子项,而不是文件名。所以就我而言,我需要它与以下内容相关联,pqunzip而不是.pqz:

[HKEY_CLASSES_ROOT\pqunzip\DefaultIcon]
@="\"C:\\MentorGraphics\\PartQuestTools\\SDD_HOME\\common\\win32\\config\\decrypted.ico\""
Run Code Online (Sandbox Code Playgroud)

为了最清楚起见,这是我的文件的全部内容.req,按预期工作:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\pqunzip]
@="PartQuest Archive"

[HKEY_CLASSES_ROOT\pqunzip\shell]

[HKEY_CLASSES_ROOT\pqunzip\shell\open]

[HKEY_CLASSES_ROOT\pqunzip\shell\open\command]
@="\"C:\\MentorGraphics\\PartQuestTools\\SDD_HOME\\common\\win32\\scripts\\pqunzip.bat\" \"%1\""

[HKEY_CLASSES_ROOT\pqunzip\DefaultIcon]
@="\"C:\\MentorGraphics\\PartQuestTools\\SDD_HOME\\common\\win32\\config\\decrypted.ico\""

[HKEY_CLASSES_ROOT\.pqz]
@="pqunzip"
Run Code Online (Sandbox Code Playgroud)