详解 Desktop.ini 配置设置文件
㈠、INI文件是什么
Desktop.ini 是什么呢?首先,他是一种特殊的 .ini 文件。那么 .ini 文件是什么呢?配置设置文件!所以,Desktop.ini 是一种特殊的,用来自定义文件夹相关信息的配置文件。默认情况下,他由系统创建,存在于该文件夹下,并具有系统、隐藏属性。 .INI 文件是一种具有特定格式的纯文本文件。
Windows利用扩展名为 .INI 的文件保存 Windows 及其应用程序的初始化信息。 Windows 及其应用程序每次启动时,都会从相应的 .INI 文件中读取初始化设置信息,并据此进行配置。
Windows注册表是帮助Windows控制硬件、软件、用户环境和Windows界面的一套数据文件,注册表包含在Windows目录下两个文件system.dat和user.dat里,还有它们的备份 system.da0和user.da0。通过Windows目录下的regedit.exe程序可以存取注册表数据库。在以前,在windows的更早版本(在Win95以前),这些功能是靠win.ini,system.ini和其他和应用程序有关联的.ini文件来实现的.
在windows操作系统家族中,system.ini和win.ini这两个文件包含了操作系统所有的控制功能和应用程序的信息,system.ini管理计算机硬件而win.ini管理桌面和应用程序。所有驱动、字体、设置和参数会保存在.ini文件中,任何新程序都会被记录在.ini文件中。这些记录会在程序代码中被引用。因为受win.ini和system.ini文件大小的限制,程序员添加辅助的.INI文件以用来控制更多的应用程序。举例来说,微软的Excel有一个office excel.ini文件,它包含着选项、设置、缺省参数和其他关系到Excel运行正常的信息。在system.ini和win.ini中只需要指出excel.ini的路径和文件名即可。
早在Dos和Win3.x的时代,大部分的应用程序都是采用了 ini 文件(初始化文件)来保存一些配置信息,如设置路径,环境变量等。system.ini和win.ini控制着所有windows和应用程序的特征和存取方法,它在少数的用户和少数应用程序的环境中工作的很好。随着应用程序的数量和复杂性越来越大,则需要在.ini文件中添加更多的参数项。
这样下来,在一个变化的环境中,在应用程序安装到系统中后,每个人都会更改.ini文件。然而,没有一个人在删除应用程序后删除.ini文件中的相关设置,所以system.ini和win.ini这个两个文件会变的越来越大。每增加的内容会导致系统性能越来越慢。而且每次应用程序的升级都出现这样的难题:升级会增加更多的参数项但是从来不去掉旧的设置。而且还有一个明显的问题,一个.ini文件的最大尺寸是64KB。为了解决这个问题,软件商自己开始支持自己的.ini文件,然后指向特定的ini文件如win.ini和system.ini文件。这样下来多个.ini文件影响了系统正常的存取级别设置。如果一个应用程序的.ini文件和WIN.INI文件设置起冲突,究竟是谁的优先级更高呢?
注册表最初被设计为一个应用程序的数据文件相关参考文件,最后扩展成对于32位操作系统和应用程序包括了所有功能下的东东。注册表是一套控制操作系统外表和如何响应外来事件工作的文件。这些“事件”的范围从直接存取一个硬件设备到接口如何响应特定用户到应用程序如何运行等等。注册表因为它的目的和性质变的很复杂,它被设计为专门为32位应用程序工作,文件的大小被限制在大约40MB。利用一个功能强大的注册表数据库来统一集中地管理系统硬件设施,软件配置等信息,从而方便了管理,增强了系统的稳定性。最直观的一个实例就是,为什么windows下的不同用户可以拥有各自的个性化设置,如不同的墙纸,不同的桌面。这就是通过注册表来实现的。
有关win.ini和system.ini的语法和相关信息,请参与这里:http://blog.sina.com.cn/s/blog_51a4af870100a2hs.html。
㈡、INF文件的格式简介
以下示例为“我的电脑”中的 Desktop.ini 配置设置文件。
示例1:寒夜孤星的视频 [DeleteOnCopy] Owner=寒夜孤星 Personalized=14
PersonalizedName=My Videos [DeleteOnCopy.A] Owner=寒夜孤星 [DeleteOnCopy.W] Owner=+W9JZHFtkZh8- [.ShellClassInfo]
InfoTip=@Shell32.dll,-12690
IconFile=%SystemRoot%\\system32\\SHELL32.dll IconIndex=-238
[ExtShellFolderViews]
{BE098140-A513-11D0-A3A4-00C04FD706EC}={BE098140-A513-11D0-A3A4-00C04FD706EC}
[{BE098140-A513-11D0-A3A4-00C04FD706EC}] Attributes=1
IconArea_Image=data\\bbwc.jpg ;注释内容
从以上的示例中可以看到.INI 文件是由许多节(Section)组成,与.INF 文件(有关.INF文件,请参阅这里http://blog.sina.com.cn/s/blog_51a4af870100adv3.html)类似,整个.INI 文件由几个节组成,节名用方括号扩起来,
如 [DeleteOnCopy] 节, [DeleteOnCopy.A] 节, [DeleteOnCopy.W] 节,[.ShellClassInfo] 节和 [ExtShellFolderViews] 节等等。(说明:在本文中,所有的节名都用彩色,并使用加粗表示!)而每个节又由一系列的条目组成,每个条目都是由一个键(Key)与一个值(Value)组成,都是“Key=Value”这样的形式,在这些节中定义的项目可以保存系统或应用程序的相关配置设置。.INI 文件中分号后面的字符串是注释。
.INI 文件的语法是统一的分节语法,随着操作系统的更新,微软逐渐增加了一些必要的关键字,但是整个的 .INI 文件的结构不会变化。从语法上来说, .INI 文件都是一个类别。
㈢、创建 Desktop.ini 文件
在 Windows XP 系统中,是不能直接创建 Desktop.ini 文件的。例如,直接复
制 Desktop.ini 到某文件夹,用记事本编辑后保存到某文件夹下并命名为 Desktop.ini ,都是不可以的。这样创建的 Desktop.ini 是不起效果的。但我们还是有其他办法实现的:右键
点击该文件夹,选择“属性”-“自定义”-“更改图标”,随便指定一个图标,例如第四个,一路“确定”以后,就会在该文件夹下生成一个 Desktop.ini 。如下:
示例0:
[.ShellClassInfo]
IconFile=%SystemRoot%\\system32\\SHELL32.dll IconIndex=3
这样,我们就可以直接编辑这个 Desktop.ini 文件了。该 Desktop.ini 具有系统、隐藏属性。对其属性的更改,不会使 Desktop.ini 失去作用。同时,即使将 Desktop.ini 删除,当再复制进 Desktop.ini时,Desktop.ini 依然起作用。
㈣、Desktop.ini文件的格式
由于本文只是讲解 Desktop.ini 文件,所以对 .INI 文件的其他节,如 [boot] 节、 [MRU List]节、 [Setup] 节、 [Font] 节等等,就不涉及了。
按照 Desktop.ini 文件的所在文件夹来分类,可以分为2类:
1,系统文件夹:例如我的文档、图片收藏、我的音乐、我的视频、FONTS字体、SendTo等等系统文件夹。
2,自定义文件夹:这些文件夹中原本没有 Desktop.ini 文件,只是根据需要,我们为他创建了Desktop.ini 。
对于不同的文件夹,Desktop.ini 文件的内容可能存在着差异,我们将主要看一些常用的节。
1、[DeleteOnCopy] 节:包含此 Desktop.ini 文件夹的私有属性描述。我的文档下的任何系统文件夹中的Desktop.ini 文件都必须包括这个节。
在示例1中,[DeleteOnCopy] 中的语句“Owner=寒夜孤星”表明这个文件夹属于用户帐户“寒夜孤星”。(在 Windows 中,文档对应于用户帐户,而“我的视频”是“我的文档”的一部分。)
Personalized=14,标识这个系统文件夹的类别。14,就是指我的视频。
Personalized常见类别: 5 =My Documents,即我的文档 13=My Music,即我的音乐
14=My Videos,即我的视频 39=My Pictures,即图片收藏
PersonalizedName=My Videos,这个系统文件夹的显示名称,即 My Videos,我的视频。有2个问题需要在这里说明一下:
⑴,如果 Desktop.ini 文件存在,且没有错误,则名称会正常显示,并显示为“我的视频”。如果文件丢失,或存在错误,则显示为“My Videos”。
⑵,使用当前用户帐户登陆,看此帐户下的系统文件夹,如我的视频,显示的是“我的视频”,看其他用户帐户建立的我的视频,显示的是“XXX 的视频”,XXX为其他用户帐户名称。 以上两个问题,对于“我的文档”、“我的音乐”、“图片收藏”等同样适用。
2、[DeleteOnCopy.A] 节:包含此 Desktop.ini 文件夹的私有属性描述。我的文档下的所有任何系统文件夹中的 Desktop.ini 文件都必须包括这个节。
在示例1中,[DeleteOnCopy.A] 中的语句“Owner=寒夜孤星”表明这个文件夹属于用户帐户“寒夜孤星”。(在 Windows 中,“我的文档”包含“我的视频”、“我的音乐”、“图片收藏”等。)
3、[DeleteOnCopy.W] 节:包含此 Desktop.ini 文件夹的私有属性描述。我的文档下的所有任何系统文件夹中的 Desktop.ini 文件都必须包括这个节。
在示例1中,[DeleteOnCopy.W] 中的语句“Owner=+W9JZHFtkZh8-”表明这个文件夹属于用户帐户“+W9JZHFtkZh8-”(该代码由系统按用户名在初始化时创建),W9JZHFtkZh8=寒夜孤星。其中“+”和“-”将“W9JZHFtkZh8”括了起来。
4、[.ShellClassInfo] 节:包含此 Desktop.ini 文件夹的相关信息,如图标、提示等等。
在示例1中,[.ShellClassInfo] 中的语句“InfoTip=@Shell32.dll,-12690”,infotip是“信息提示”(信息提示:顾名思义,就是当鼠标移动到此文件、文件夹或快捷方式上时,所显示的提示内容),后边的SHELL32.DLL表示信息来自SHELL32.DLL文件,后面的-12690是一个索引编号。这个信息提示的具体内容是:包含音乐和其他视频文件。(资源位置:字符串794-12690,包含音乐和其它视频文件。) 其他信息提示内容:
My Pictures,InfoTip=@Shell32.dll,-12688 :包含数字照片,图片和图形文件 资源位置:字符串794-12688,包含数字照片,图片和图形文件。 My Music,InfoTip=@Shell32.dll,-12689 :包含音乐和其他音频文件 资源位置:字符串794-12689,包含音乐和其它音频文件。
如果该 Desktop.ini 文件没有声明信息提示,则一般是由注册表来声明的,例如“我的文档”,[HKEY_LOCAL_MACHINE\\Software\\CLASSES\\CLSID\\{450D8FBA-AD25-11D0-98A8-0800361B1103}],右边的字符串键值“InfoTip”内容为提示信息。他的数值为
“@%SystemRoot%\\system32\\SHELL32.dll,-22914”,即信息提示为“包含信件,报告和其他文档已经文件”(资源位置:字符串1433-22914,包含信件,报告和其它文档以及文件。)。当然,我们也可以手工更改这些,从上面提到的这些,就可以明白方法有很多种: ⑴,可以从注册表改。 ⑵,可以修改资源。
⑶,可以直接修改 Desktop.ini 文件,例如“InfoTip=寒夜小猪滴文档”
SHELL32.dll文件中包含的部分信息提示:
-4687,包含一些可以将所选文件或文件夹复制或发送到其中的项目。 -4707,包含创建新项目的命令。 -4755,包含公文包所用的命令。
-9729,本次操作由于这台计算机的限制而被取消。请与您的系统管理员联系。 -9730,显示网络上的所有计算机、打印机、文件和文件夹以及用户。
-10292,“回收站”包含您从计算机中删除的文件。这些文件在清空回收站之前不会永久删除。 -12688,包含数字照片,图片和图形文件。 -12689,包含音乐和其它音频文件。 -12690,包含音乐和其它视频文件。 -12692,显示最近打开的文件和文件夹。
-12694,显示在桌面上的文件,文件夹,程序快捷方式和其它项目。 -12695,包含在此计算机的用户之间共享的文件和文件夹。 -12696,显示安装的打印机和传真打印机,并帮助您添加新的。
-22528,使用“辅助功能向导”来配置您的系统以满足您视觉、听觉以及行动的需要。 -22529,使用目录服务来管理您的联系簿并寻找个人和企业。 -22530,存档数据以防止意外丢失。
-22531,使用屏幕“计算器”执行基本的算术任务。 -22532,播放音频光盘(CD)。
-22533,选择特殊字符并且复制到文档中。 -22534,执行基于字符的(命令行)功能。
-22535,管理磁盘以及使用其他系统工具来管理本地或远程的计算机。 -22536,为所有 Windows 管理工具提供访问,包括管理单元和控制面板。 -22537,添加、删除、以及配置 ODBC 数据源和驱动程序。 -22538,可以清除您磁盘上不需要的文件。
-22539,整理磁盘卷的碎片以使计算机运行的更快更有效。
-22540,创建和管理分布式文件系统以连接来自不同计算机的共享文件夹。 -22541,显示来自于 Windows 和其他程序的监视与排错消息。 -22542,开始“空当接龙”纸牌游戏。
-22543,通过调制解调器或者非调制解调器电缆,与其他计算机、Internet telnet 站点、电子布告栏服务 (BBS)、联机服务、以及主机进行连接。
-22544,显示和编辑现有图像文件,如扫描获得的图片或者数字图像。 -22545,将您的计算机设置成可以访问 Internet -22546,在 Internet 上寻找并显示信息和网站。