详解 Desktop.ini 配置设置文件
㈠、INI文件是什么
   Desktop.ini 是什么呢?首先,他是一种特殊的 .ini 文件。那么 .ini 文件是什么呢?配置设置文件!所以,Desktop.ini 是一种特殊的,用来自定义文件夹相关信息的配置文件。默认情况下,他由系统创建,存在于该文件夹下,并具有系统、隐藏属性。
   .INI 文件是一种具有特定格式的纯文本文件。
   Windows利用扩展名为 .INI 的文件保存 Windows 及其应用程序的初始化信息。 Windows 及其应用程序每次启动时,都会从相应的 .INI 文件中读取初始化设置信息,并据此进行配置。
Windows注册表是帮助Windows控制硬件、软件、用户环境和Windows界面的一套数据文件,注册表包含在Windows目录下两个文件system.datuser.dat里,还有它们的备份 system.da0user.da0。通过Windows目录下的程序可以存取注册表数据库。在以前,在windows的更早版本(在Win95以前),这些功能是靠win.inisystem.ini和其他和应用程序有关联的.ini文件来实现的.
  在windows操作系统家族中,system.iniwin.ini这两个文件包含了操作系统所有的控制功能和应用程序的信息,system.ini管理计算机硬件而win.ini管理桌面和应用程序。所有驱动、字体、设置和参数会保存在.ini文件中,任何新程序都会被记录在.ini文件中。这些记录会在程序代码中被引用。因为受win.inisystem.ini文件大小的限制,程序员添加辅助的.INI文件以用来控制更多的应用程序。举例来说,微软的Excel有一个office excel.ini文件,它包含着选项、设置、缺省参数和其他关系到Excel运行正常的信息。在system.iniwin.ini中只需要指出excel.ini的路径和文件名即可。
  早在DosWin3.x的时代,大部分的应用程序都是采用了 ini 文件(初始化文件)来保存一些配置信息,如设置路径,环境变量等。system.iniwin.ini控制着所有windows和应用程序的特征和存取方法,它在少数的用户和少数应用程序的环境中工作的很好。随着应用程序的数量和复杂性越来越大,则需要在.ini文件中添加更多的参数项。
  这样下来,在一个变化的环境中,在应用程序安装到系统中后,每个人都会更改.ini文件。然而,没有一个人在删除应用程序后删除.ini文件中的相关设置,所以system.iniwin.ini这个两个文件会变的越来越大。每增加的内容会导致系统性能越来越慢。而且每次应用程序的
升级都出现这样的难题:升级会增加更多的参数项但是从来不去掉旧的设置。而且还有一个明显的问题,一个.ini文件的最大尺寸是64KB。为了解决这个问题,软件商自己开始支持自己的.ini文件,然后指向特定的ini文件如win.inisystem.ini文件。这样下来多个.ini文件影响了系统正常的存取级别设置。如果一个应用程序的.ini文件和WIN.INI文件设置起冲突,究竟是谁的优先级更高呢?
  注册表最初被设计为一个应用程序的数据文件相关参考文件,最后扩展成对于32位操作系统和应用程序包括了所有功能下的东东。注册表是一套控制操作系统外表和如何响应外来事件工作的文件。这些事件的范围从直接存取一个硬件设备到接口如何响应特定用户到应用程序如何运行等等。注册表因为它的目的和性质变的很复杂,它被设计为专门为32位应用程序工作,文件的大小被限制在大约40MB。利用一个功能强大的注册表数据库来统一集中地管理系统硬件设施,软件配置等信息,从而方便了管理,增强了系统的稳定性。最直观的一个实例就是,为什么windows下的不同用户可以拥有各自的个性化设置,如不同的墙纸,不同的桌面。这就是通过注册表来实现的。
  有关win.inisystem.ini的语法和相关信息,请参与这里:blog.sina/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文件,请参阅这里blog.sina/s/blog_51a4af870100adv3.html)类似,整个.INI 文件由几个节组成,节名用方括号扩起来,如 [DeleteOnCopy] 节, [DeleteOnCopy.A] 节, [DeleteOnCopy.W] 节,[.ShellClassInfo] 节和 [ExtShellFolderViews] 等等。(说明:在本文中,所有的节名都用彩,并使用加粗表示!)而每个节又由一系列的条目组成,每个条目都是由一个键(Key)与一个值(Value)组成,都是Key=Value这样的形式,在这些节中定义的项目可以保存系统或应用程序的相关配置设置。.INI 文件中分号后面的字符串是注释。