我可以为文件类型分配自定义图标吗?

3
有没有一种方法可以将文件类型(如.php、.css、.js)与自定义图标关联起来,即使文件已经与程序关联?
例如,在我的电脑上,.php与Sublime Text相关联,当我在文件系统中遇到.php时,它会显示ST的图标,有没有办法让它改变为自定义图标,但仍然与ST相关联,即当我单击文件时,它仍然在ST中打开。

https://msdn.microsoft.com/en-us/library/windows/desktop/hh127427(v=vs.85).aspx - Simon
1个回答

4

我知道如何为分配给Notepad++的文件类型执行此操作。

在Windows 10中,Notepad++会占用默认在Notepad++中打开的文件类型的图标。这很难打破,但我最终成功了!


准备工作

1. 注册表权限
打开Windows注册表,并为文件夹 HKEY_CLASSES_ROOTHKEY_CURRENT_USER 赋予足够的“权限”。我自己不确定整个过程的最小设置是什么。您必须使用这些设置进行一些尝试。如果您在接下来的过程中收到错误消息,请返回该步骤并增加您的注册表权限。

2. 制作一些自定义图标
制作一些自定义图标,例如在文件夹 C:\ICONS\ 中。我使用以下网站https://iconverticons.com/online/ 将256x256 png文件转换为ico文件。

3. 安装Notepad++
只需获取Notepad++即可。没有特别的要求。

4. 以管理员身份打开终端
在Windows搜索栏中键入cmd。右键单击出现的CMD图标,在弹出窗口中选择“以管理员身份运行”。


注册表修改

免责声明:更改注册表可能会对Windows安装造成潜在的损坏。我已经以最好的意图写下以下过程,但如果出现问题,我不承担任何责任。
注意:我不建议使用此过程来处理 .bat 文件。这是Windows的一个非常重要的文件类型。因此,如果删除其标准注册表键,我不知道会发生什么。

下面的过程描述了如何将自定义图标(您在C:\ICONS\abcfile.ico中创建的图标)分配给所有 *.abc 文件。

1. 注册表修改,第一部分
您应该添加的第一个注册表键是 HKEY_CLASSES_ROOT\.abc。如果此键已存在,则可能要删除它。使用以下命令删除该键及其所有子键:

> REG DELETE HKEY_CLASSES_ROOT\.abc /f

以下图显示了我们将如何重新构建此注册表键及其所有子键:

enter image description here

您可以手动执行此操作,也可以运行以下命令:
> REG ADD HKEY_CLASSES_ROOT\.abc /ve /t REG_SZ /d "abc_auto_file"
> REG ADD HKEY_CLASSES_ROOT\.abc /v BrowserFlags /t REG_DWORD /d 0x00000000
> REG ADD HKEY_CLASSES_ROOT\.abc /v EditFlags /t REG_DWORD /d 0x00000000
> REG ADD HKEY_CLASSES_ROOT\.abc /v PerceivedType /t REG_SZ /d "text"
> REG ADD HKEY_CLASSES_ROOT\.abc\DefaultIcon /ve /t REG_SZ /d "C:\ICONS\abcfile.ico,0"

2. 注册表修改,第二部分
你应该添加的第二个注册表键是HKEY_CLASSES_ROOT\abc_auto_file。如果此键已经存在,您可能需要将其删除。使用以下命令删除该键及其所有子键:

> REG DELETE HKEY_CLASSES_ROOT\abc_auto_file /f

以下图显示了我们将如何(重新)构建此注册表键及其所有子键: enter image description here 您可以手动执行此操作,或运行以下命令:
> REG ADD HKEY_CLASSES_ROOT\abc_auto_file /ve /t REG_SZ
> REG ADD HKEY_CLASSES_ROOT\abc_auto_file\DefaultIcon /ve /t REG_SZ /d "C:\ICONS\abcfile.ico"
> REG ADD HKEY_CLASSES_ROOT\abc_auto_file\shell /ve /t REG_SZ
> REG ADD HKEY_CLASSES_ROOT\abc_auto_file\shell\edit /ve /t REG_SZ
> REG ADD HKEY_CLASSES_ROOT\abc_auto_file\shell\edit\command /ve /t 
> REG_EXPAND_SZ /d "\"C:\Program Files (x86)\Notepad++\notepad++.exe\" \"^%1\""
> REG ADD HKEY_CLASSES_ROOT\abc_auto_file\shell\open /ve /t REG_SZ
> REG ADD HKEY_CLASSES_ROOT\abc_auto_file\shell\open\command /ve /t 
> REG_EXPAND_SZ /d "\"C:\Program Files (x86)\Notepad++\notepad++.exe\" \"^%1\""

3. 修改注册表,第三部分
你需要添加的第二个注册表键是 HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.abc。如果该键已经存在,则可以将其删除。使用以下命令删除该键及其所有子键:

> REG DELETE HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.abc /f

下图展示了如何重新构建此注册表键及其所有子键:

enter image description here

您可以手动执行此操作或运行以下命令:

> REG ADD HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.abc /ve /t REG_SZ
> REG ADD HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.abc\OpenWithList /ve /t REG_SZ
> REG ADD HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.abc\OpenWithProgids /ve /t REG_SZ
> REG ADD HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.abc\OpenWithProgids /v "C:\Program Files (x86)\Notepad++\notepad++.exe" /t REG_NONE /d 0
> REG ADD HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.abc\OpenWithProgids /v abc_auto_file /t REG_NONE /d 0

刷新图标缓存

以下命令可刷新Windows图标缓存:

> %windir%\system32\ie4uinit.exe -show

给文件类型分配Notepad++

我注意到有时只有在将Notepad++分配为打开该文件类型的默认程序后,更改才会生效。

以下是如何操作:

  • 创建一个具有指定文件类型的文件,例如:myFile.abc
  • 右键单击该文件,选择“打开方式”>>“另一个应用程序”
  • 您应该会得到一个弹出窗口,如下所示:enter image description here
  • 选择Notepad++作为默认程序

完成

现在图标通常已更改!该特定文件类型的所有文件都将具有自定义图标。它们将默认在Notepad++中打开。

也许您应该再次刷新图标缓存:

> %windir%\system32\ie4uinit.exe -show

或者重新启动您的系统,以使其生效(尽管对我来说不需要重新启动)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接