INF文件格式功能_操作系统

内容摘要
Windows的系统文件夹中有各种系统文件,看着为数众多的文件类型,你想过了解它们的作用吗?本期我们将对其中的一种文件格式进行深挖,帮你实现一键备份
文章正文

    Windows的系统文件夹中有各种系统文件,看着为数众多的文件类型,你想过了解它们的作用吗?本期我们将对其中的一种文件格式进行深挖,帮你实现一键备份个人设置,自动添加/删除系统组件,安装受限程序等功能。

  一、程序操作更简单——轻松实现软件安装与卸载

  1)自动添加/删除系统组件

  INF文件作为系统的关键文件,在很多地方都体现着作用,例如,系统用其定义“添加/删除Windows组件”中显示的内容。选择“开始→运行”,输入:%windir%\inf后回车,双击里边的Sysoc.inf,你可以找到形如:msmsgs=msgrocm.dll,OcEntry,msmsgs.inf,hide,7这样的字段,将这段的hide删除,然后选择“控制面板→添加或删除程序→添加/删除Windows组件”,你就可以在里边找到Windows Messenger了,如图1所示。同样的方法,你可以删除很多你不想要的系统组件,你也可以在Sysoc.inf文件中需要的字段后边加上hide,隐藏指定的组件,以防其被别人删除。

      在“添加/删除Windows组件”中你可以添加你需要的系统组件,但是每次通过进入“添加/删除Windows组件”进行添加或卸载组件实在是麻烦,我们可以利用INF文件实现自动安装或卸载。这里我们以添加或删除传真组件为例。打开Sysoc.inf,找到:Fax=fxsocm.dll,FaxOcmSetupProc,fxsocm.inf,,7,这段话表示安装传真组件需要的文件。在放置Sysoc.inf文件的文件夹中,可以找到fxsocm.inf文件,在C盘下建立一个ABC文件夹,将这个INF文件拷贝进去。双击这个文件,在文件的顶端加入[Components]字段,然后换行,在其下边加入,在Sysoc.inf文件中找到的与传真相关的那行话,如图2所示。加入该字段的目的是告诉inf文件传真服务需要哪些组件。

  然后在fxsocm.inf中搜索,[Optional Components]字段,将该字段下的文字复制,然后在ABC文件夹下建立一个文本文件,命名为1.txt,双击打开,输入:[Components],换行后将复制的字段粘入,针对本例该字段为:Fax,对于包含子组件的组件,将子组件列在组件的下方。然后在这些组件后边加上=on,如果你需要卸载组件则输入=off。然后输入:[NetOptionalComponents],换行后将[Components]下边的字段复制过来,将on改为1,如图3所示。如果是卸载或者安装的组件不包含子组件则不需[NetOptionalComponents]字段。

  再建立一个文本文档,在里边输入:%systemroot%\system32\sysocmgr.exe /i:"c:\ABC\fxsocm.inf" /u:"c:\ABC\1.txt",保存该文本文档,并将其改名为FAX.bat,将Windows XP光盘放入,再双击这个bat文件,即可完成组件的安装。以后只要需要安装这个组件,只需将ABC文件夹拷贝到C盘根目录下,运行里边的bat文件即可。

      2)突破软件安装限制
 
  很多优秀的软件都对我们的硬件又要求,比如SoundMAX软件可以很好的提高我们集成声卡的音质,但是其要求声卡芯片必须是AD188x、AD189x、AD198x等。否则将禁止安装。事实上这种限制很多都是通过在INF文件上加入限制实现的,只要修改INF的相应字段就可以突破这个限制。打开SoundMAX的Win2000/XP版的驱动,一般你会在里边找到3个INF文件,smwdmCH4.inf、smwdmCH6.INF、smwdmCH5.inf,分别对应ICH4芯片、ICH6芯片和其他非Intel芯片,如果你无法确定你的主板芯片,就把它们都改了,呵呵。
 
  打开其中的一个INF文件,然后搜索[AnalogDevices]字段,该段的最后一行为声卡的ID号。选择“开始→运行”,输入:dxdiag,回车后打开“DirectX诊断工具”,选择“声音”标签,如图4所示,将“设备ID”后边的字段覆盖INF文件中的对应字段即可。切记格式要完全一样,否则将无法安装。

  二、个人设置不再丢——备份常用文件夹

 

  说是备份个人设置,不如理解成重定向个人设置文件夹的位置更为贴切。我们常用的一些个人设置文件夹,如:收藏夹、Cookie文件夹、桌面文件、我的文档等,在每次重装系统时都要进行备份,否则重装后,这些信息将一去不复返。但是如果我们将这些文件夹移动到别的分区,就无需再费心的备份了。所以将这类操作也归为文件备份。 
 
  假设系统盘是C盘,具体的操作步骤如下:用于存储用户的个人数据的分区为E区,我们需要将用户数据保存到E:\MyData。首先我们编个bat文件,将需要备份的个人设置文件夹,都统统拷贝到这个文件夹中(如果是刚装的操作系统,这步就可以省了)。
 打开个记事本,输入下边的命令:
 
 set NEWDEST=E:\MyData
      xcopy "%USERPROFILE%\Favorites" "%NEWDEST%\Favorites"  /I /S /E
      xcopy "%USERPROFILE%\Cookies" "%NEWDEST%\Cookies"  /I /S /E
      xcopy "%USERPROFILE%\My Documents" "%NEWDEST%\My Documents"  /I /S /E
 xcopy "%USERPROFILE%\Desktop" "%NEWDEST%\Desktop"  /I /S /E

  保存这个文档,将扩展名改为.bat,然后执行该批处理命令。
 
  然后再编个文件,自动修改注册表中的有关个人数据的路径,再打开记事本,在里边输入:
 
 [Version]
      Signature="$Windows NT$"
      [DefaultInstall]
      AddReg=Shell Folders_AddReg
      [Shell Folders_AddReg]
      HKCU,"%User_Shell_Folders%","Favorites",0x00020000,"E:\MyData\Favorites"
      HKCU,"%User_Shell_Folders%","Personal",0x00020000,"E:\MyData\My Documents"
      hkcu,"%User_Shell_Folders%","Cookies",0x00020000,"E:\MyData\Cookies"
      HKCU,"%User_Shell_Folders%","Desktop",0x00020000,"E:\MyData\Desktop"
      HKCU,"%User_Shell_Folders%","My Pictures",0x00020000,"E:\MyData\My Documents\My Pictures"
      [Strings]
      User_Shell_Folders="Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"

  把这个内容保存,设置文件的扩展名为.INF,然后在文件上单击鼠标右键,选择右键菜单中的安装就可以了实现注册表更改了。注销后再登录,注册表中的设置就可以生效了。为了节省磁盘空间,你还可以把原来位置的个人数据都删了。下次再重装完以后,只需要再执行一下执行INF文件,并重登陆一次,你原来的设置就回来了。

  如果你还是觉得不踏实,就干脆禁用掉INF运行功能,打开注册表编辑器,定位到:HKEY_LOCAL_MACHINE\Software\CLASSES\.inf,双击右侧的“默认”,将原来的:inffile,改为:txtfile即可,不过这样修改影响甚大,请谨慎使用。
 
  INF文件功能强大这里介绍的仅仅是冰山一角,INF文件其他的功能例如用INF文件自动安装操作系统,锁定/解锁注册表,修改鼠标右键菜单等,读者还可自行尝试。

代码注释
[!--zhushi--]

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!