【问题标题】:How to change an icon for one single file of the specific type?如何更改特定类型的单个文件的图标?
【发布时间】:2012-02-21 05:53:33
【问题描述】:

我知道如何使用注册表和文件类型关联来更改整个文件类型的图标。 我也知道如何使用 desktop.ini 文件更改单独文件夹的图标。

我的问题是是否可以更改一个特定文件的图标,比如说一个.doc 文件?

我找不到这样做的方法,但一些上传程序似乎能够更改当前上传文件的图标,而所有其他此类文件仍保留标准图标。他们是怎么做到的?

我可以接受任何语言的解决方案; VB、C++、C# - 什么都可以,尽管 C# 更可取。 谢谢

【问题讨论】:

  • 您只是想从一个文档上的默认图标更改它?
  • 您使用的是 mac 还是 windows?我假设窗户......
  • 我觉得我不完全理解这个问题......你想用 C# 来做,但为什么不直接从 Windows 中改变呢? vlaurie.com/computers2/Articles/icons.htm
  • @Charlie - 因为如果您从 Windows 更改图标,它会为整个类型更改它,而我想为该类型的一个特定文件执行此操作,比如说一个 Word 文档。创建快捷方式不是解决方案,因为我想更改原始文件的图标。
  • 您可能误解了“上传程序”的作用。他们通常在上传时使用不同的文件扩展名。完成后重命名它。图标会作为副作用自动更改。

标签: c# windows shell file icons


【解决方案1】:

我意识到这个线程已经很老了。但是对于编码经验较少的用户来说,下面是一个不错的选择。

  1. 将您的目标文件放在某处。
  2. 为该文件创建一个快捷方式项。
  3. 现在您可以使用快捷方式的属性窗口更改快捷方式的图标。

只是另一种解决方案。更多的是真正的解决方法。

【讨论】:

  • 您所说的问题是您如何以编程方式执行此操作,因为例如使用 mklink 创建的链接不会像右键单击创建的链接那样可自定义。
【解决方案2】:

您可以使用IconHandler 来允许逐个文件自定义图标。注意shell extensions should not be written in managed code,所以这里选择C++。

另请注意,为另一个应用程序的文件类型安装图标处理程序是非常不寻常的。

【讨论】:

  • 实际上我正在寻找一种方法来更改原始图标,例如 Tortoise 所做的事情。我已经想出应该为此使用图标叠加处理程序,但是您的帖子使我转向了另一个方向。一个人最多只能同时拥有 14 个图标叠加处理程序,而图标处理程序的数量似乎是无限的,所以这可能是一个更好的方法。谢谢。
  • 但是,每个文件类型只能有一个图标处理程序,因此安装图标处理程序实际上应该只由文件类型的所有者完成。否则你就会有“如果两个人这样做会怎样?”问题。
猜你喜欢
  • 2013-03-14
  • 1970-01-01
  • 2017-05-08
  • 2015-08-17
  • 1970-01-01
  • 1970-01-01
  • 2011-04-21
  • 2017-03-25
  • 1970-01-01
相关资源
最近更新 更多