游民家园

leafyoung v.s. dotnet

导航

[Misc]如何改变文件夹的默认图标?

  相信在Windows 2000下工作的你早就厌倦了资源管理器平板而单一的图标了,如果能像在xp下一样可以自由自在地给我们的文件夹换上一个光彩夺目的图标,肯定给我们的爱机增色不少,其实这也不是不可能,其中的奥秘全在一个小小的配置文件中。
  如果你够仔细的话,可能早就发现在“我的文档”中的“My Pictures”文件夹的图标与众不同,它显示的不是普通的文件夹图标,在它的图标上多了一点东西,凭什么它就可以标新立异呢?(如下图所示)

  其实很简单,在“文件夹选项”对话框中选择“显示所有文件和文件夹”并且取消选择“隐藏受保护的操作系统文件(推荐)”,你就可以看到该目录下有一个名为desktop.ini的文件,其中文件的内容可能如下:
[ExtShellFolderViews]
Default={8BEBB290-52D0-11D0-B7F4-00C04FD706EC}
{8BEBB290-52D0-11D0-B7F4-00C04FD706EC}={8BEBB290-52D0-11D0-B7F4-00C04FD706EC}
{5984FFE0-28D4-11CF-AE66-08002B2E1262}={5984FFE0-28D4-11CF-AE66-08002B2E1262}
[{5984FFE0-28D4-11CF-AE66-08002B2E1262}]
WebViewTemplate.NT5=%WebDir%\ImgView.htt
[.ShellClassInfo]
InfoTip=存储图片
IconFile=%SystemRoot%\system32\mydocs.dll
IconIndex=-101
ConfirmFileOp=0
[.ShellClassInfo.A]
InfoTip=存储图片
[.ShellClassInfo.W]
InfoTip=+W1hQqFb+ckc-

  其实我们所需的仅仅是其中的一个小节,由于desktop.ini文件的格式我也无从所知,因此也只能仅仅凭着在网络上收集到的一点资料达到我们的目的,下面言归正传。
  望文生义,[.ShellClassInfo]小节下面的各个键的含义分别如下:
1. InfoTip: 就是我们鼠标悬浮在文件夹图标上弹出的那个黄色小框框中显示的文字(不要说你没见过,呵呵),我们可以用它来告诉我们这个文件夹是用来干什么的;
2. IconFile: 图标文件的文件名,不仅仅可以是后缀名为ico的真正的图标文件,还可以是那些包含了图标资源的可执行文件如dll、exe等等。
3. IconIndex: 以0开始的图标索引。假如IconFile的值是ico文件的文件名,那么IconIndex就是0(你也只有一个图标,因此没有别的选择,呵呵);假如IconFile的值是可执行文件的文件名,那么IconIndex就是该图标在所属文件中的索引了,你可以根据实际情况设定这个键值。你可能会很奇怪,既然是索引,那么,上面的示例中怎么会有IconIndex=-101呢?索引值怎么可能为负数?问得好,其实说IconIndex是索引值也不是很恰当,因为它是两用的,但它是正数的时候,它确实表示索引;但是当它是负数得时候,它的意义就不同了,它现在是该图标在所属可执行文件中的ID号取负值,也就是说上面示例中的图标是mydocs.dll中ID号为101的图标资源,这下你明白了吧!
  了解了上面的知识,我们就可以来自定义我们的文件夹图标了,首先我们在要改变图标的文件夹下新建一个文本文件,然后将下面的内容写入该文件中:
[.ShellClassInfo]
IconFile = C:\WINNT\system32\SHELL32.DLL
IconIndex = 86
InfoTip = 文档目录
  然后将文件保存为desktop.ini,用“attrib +h +s desktop.ini”为该文件添加“系统+隐藏”属性,并将该文件夹设为只读,好了,大功告成,刷新一下看看你的文件夹图标是否已经改变了吧!

posted on 2004-11-09 18:23  游民一族  阅读(6269)  评论(4编辑  收藏  举报