第一次尝试

第一次尝试

目前,我已将各种文本文件格式(.md、.txt、.taskpaper)关联到 sublime text 打开。这导致所有文件都被分配了相同的图标文件,即 sublime text 图标。

我如何才能让每种文件格式都有自己独特的图标文件(由我提供)?

第一次尝试

使用 Nirsoft 的 FileManType 更改与其中一种文件类型关联的图标。结果:它更改了 sublime 打开的所有文件类型的图标(这不是我想要的)

第二次尝试

现在我试着变得聪明一点......

  • (1)为每种文件格式创建 sublime exe 的快捷方式
  • (2)为每个快捷方式赋予其独特的图标,快捷方式可以接受这些图标
  • (3)将(比如说).md 文件打开的程序设置为其自己的特殊快捷方式等......

这次它只是忽略了快捷方式中包含的图标,并保留了 sublime 图标

有任何想法吗?

答案1

使用默认程序编辑器

除此之外,该编辑器还允许您替换单个文件类型的图标,同时仍保留相关程序。

我意识到这基本上是一个仅链接答案但是,我不知道除了直接编辑注册表之外还有什么其他方法可以做到这一点。如果您对需要进行的特定编辑感兴趣,请考虑使用procmonSysinternals 来捕获图标更改期间的注册表活动。

您可以从以下网址下载 2.7.2675.2253 版默认程序编辑器(自 2013 年 2 月 15 日星期五起)巧克力画廊

答案2

您可以参考这个MSDN文章

  1. 在中创建一个名为 DefaultIcon 的子键HKEY_CLASSES_ROOT\.extension

  2. 为 DefaultIcon 子键分配一个默认值,REG_SZ该类型指定包含图标的文件的完整限定路径。

  3. 注销并重新登录

编辑:看起来 Windows 10 注册表为每个应用程序都有单独的条目,因此例如我想更改我的 Notepad++ .ico,所以我找到了该HKEY_CLASSES_ROOT\Notepad++_file条目并修改了现有的 DefaultIcon 路径。忘记添加这个了。这是其中一条评论  

答案3

这是相当困难的,而且原因很有趣。

从 Windows Vista 开始,文件类型大多由“用户选择”选项管理(从 FileTypesMan 界面可以看出),该选项将程序、图标、菜单选项等捆绑到一种文件类型中,例如“ChromeHTML”。以前,我们可以简单地创建一个新的文件类型,然后将给定文件扩展名的用户选择选项修改为新类型,但现在情况不同了。从 Windows 8 开始,系统在用户选择选项中引入了一个“哈希”,这基本上是一个密码,可以保护文件扩展名不被系统 UI 以外的任何人修改。几乎所有文件类型管理工具(包括 FileTypesMan 和默认程序编辑器)都无法破解该密码,因此无法帮助您更改用户选择。

我知道只有一个例外。它被称为 SetUserFTA。该工具的作者以某种方式对系统进行了逆向工程,并找出了用于创建哈希的确切算法,因此确实可以更改单个文件扩展名的用户选择,而无需更改其他任何内容。该工具可以从

https://kolbi.cz/blog/2017/10/25/setuserfta-userchoice-hash-defeated-set-file-type-associations-per-user/

所以现在您需要做的就是像以前一样创建一个新的文件类型,然后使用 SetUserFTA 来更改扩展名。

答案4

我刚刚经历了这一切,想分享我的具体解决方案。我喜欢使用 Chrome 查看 PDF 文件,但讨厌所有 PDF 文件看起来都像 Chrome 网页或 Edge 网页!我对注册表进行了两项更改,尽管我不认为 .pdf 注册表更改是必要的。

右键单击,以管理员身份运行 Regedit,并添加以下两个键:

HKEY_CLASSES_ROOT>.pdf>
      (Default) = pdf_auto_file   [Locate this program name for step 2]
      DefaultIcon       [added this key to the .pdf]
         (Default) = C:\Windows\system32\shell32.dll,75 [set the value of DefaultIcon]


HKEY_CLASSES_ROOT>
   pdf_auto_file>
      DefaultIcon       [add the DefaultIcon key to pdf_auto_file]
         (Default) = C:\Windows\system32\shell32.dll,75  [set the value of DefaultIcon]

我使用了一个叫做图标探索器找到我喜欢的图标并获取正确的路径。

相关内容