每个文件实例的自定义图标

时间:2009-03-25 14:24:03

标签: windows icons

某些Windows程序可以为具有相同扩展名的不同文件使用不同的图标。

实施例

  • .sln可以显示不同的图标,具体取决于制作解决方案的Visual Studio版本(实际上,由.sln顶行中的版本号决定)
  • Photoshop .psd文件包含带有图像缩略图的图标
  • 如果在Internet Explorer中打开或保存,则.url快捷方式文件具有页面的图标

我猜它必须只对该计算机进行自定义。在没有安装Visual Studio的盒子上,.sln文件只有默认的“我不知道这个程序”图标。是否需要在注册表中更改某些内容?

我该怎么做?我想选择将自定义图标与文件关联到我自己的程序。

[编辑] 我真的可以在托管代码中执行此操作。它可能(< SDK v1.1> \ Samples \ Technologies \ Interop \ Applications \ ShellCmd)但它似乎也有潜在的危险,并且在实践中是错误的工具:{{3} }。我真的希望MS现在可以为这种东西提供一个很好的托管API。

1 个答案:

答案 0 :(得分:3)

看看这个C++ code on CodeProject:基本上,你编写一个COM处理程序并为你的扩展注册它。请注意,如果泄漏图标处理程序或shell扩展中的资源,您可能会非常糟糕地破坏资源管理器进程... C ++可能是一个挑战,但出于内存消耗的原因,我不建议在C#或Java中执行此操作(a每个扩展/处理程序的框架代码的单独副本!)。