Notepad++ 一直劫持我的自定义图标

Notepad++ 一直劫持我的自定义图标

笔记:
Windows 10 机器,64 位。

我正在使用 FileTypesMan,并成功更改了某些扩展的图标:

在此处输入图片描述

结果如下:

在此处输入图片描述

到目前为止一切顺利。但是当我双击一个文件时,我选择 Notepad++ 作为打开文件的默认程序:

在此处输入图片描述

然后事情就出错了。Notepad++ 劫持了图标。*.c现在所有文件都显示 Notepad++ 图标。

我怎样才能阻止 Notepad++ 这样做?

答案1

解决方案不是使用FileTypesMan,而是编辑注册表本身。经过长时间的反复试验,我找到了一个注册表设置,它允许我为文件类型分配自定义图标。

 

准备工作

1. 注册表权限
打开 Windos 注册表,为文件夹HKEY_CLASSES_ROOT和授予足够的“权限” HKEY_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

下图显示了我们如何(重新)构建此注册表项及其所有子项:

在此处输入图片描述

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

> 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

下图显示了我们如何(重新)构建此注册表项及其所有子项:

在此处输入图片描述

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

> 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

下图显示了我们如何(重新)构建此注册表项及其所有子项:

在此处输入图片描述

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

> 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
  • 右键单击该文件,然后选择“打开方式”>>“其他应用”
  • 你应该看到一个弹出窗口,类似如下:在此处输入图片描述
  • 选择 Notepad++ 作为默认程序

 

结束

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

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

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

或者重新启动系统以使其生效(虽然我不需要重新启动)。

相关内容