Windows的系统文件夹中有各种系统文件,看着为数众多的文件类型,你想过了解它们的作用吗?本期我们将对其中的一种文件格式进行深挖,帮你实现一键备份个人设置,自动添加/删除系统组件,安装受限程序等功能。
一个文件的精彩 深挖INF文件格式功能(上)
Windows的系统文件夹中有各种系统文件,看着为数众多的文件类型,你想过了解它们的作用吗?本期我们将对其中的一种文件格式进行深挖,帮你实现一键备份个人设置,自动添加/删除系统组件,安装受限程序等功能。
一、程序操作更简单——轻松实现软件安装与卸载
1)自动添加/删除系统组件
INF文件作为系统的关键文件,在很多地方都体现着作用,例如,系统用其定义“添加/删除Windows组件”中显示的内容。选择“开始→运行”,输入:%windir%inf后回车,双击里边的Sysoc.inf,你可以找到形如:msmsgs=msgrocm.dll,OcEntry,msmsgs.inf,hide,7这样的字段,将这段的hide删除,然后选择“控制面板→添加或删除程序→添加/删除Windows组件”,你就可以在里边找到Windows Messenger了,如图1所示。同样的方法,你可以删除很多你不想要的系统组件,你也可以在Sysoc.inf文件中需要的字段后边加上hide,隐藏指定的组件,以防其被别人删除。
{ad}在“添加/删除Windows组件”中你可以添加你需要的系统组件,但是每次通过进入“添加/删除Windows组件”进行添加或卸载组件实在是麻烦,我们可以利用INF文件实现自动安装或卸载。这里我们以添加或删除传真组件为例。打开Sysoc.inf,找到:Fax=fxsocm.dll,FaxOcmSetupProc,fxsocm.inf,,7,这段话表示安装传真组件需要的文件。在放置Sysoc.inf文件的文件夹中,可以找到fxsocm.inf文件,在C盘下建立一个ABC文件夹,将这个INF文件拷贝进去。双击这个文件,在文件的顶端加入[Components]字段,然后换行,在其下边加入,在Sysoc.inf文件中找到的与传真相关的那行话,如图2所示。加入该字段的目的是告诉inf文件传真服务需要哪些组件。
图2 修改INF文件
然后在fxsocm.inf中搜索,[Optional Components]字段,将该字段下的文字复制,然后在ABC文件夹下建立一个文本文件,命名为1.txt,双击打开,输入:[Components],换行后将复制的字段粘入,针对本例该字段为:Fax,对于包含子组件的组件,将子组件列在组件的下方。然后在这些组件后边加上=on,如果你需要卸载组件则输入=off。然后输入:[NetOptionalComponents],换行后将[Components]下边的字段复制过来,将on改为1,如图3所示。如果是卸载或者安装的组件不包含子组件则不需[NetOptionalComponents]字段。
图3 设置INF的安装参数
再建立一个文本文档,在里边输入:%systemroot%system32sysocmgr.exe /i:"c:ABC xsocm.inf" /u:"c:ABC.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文件中的对应字段即可。切记格式要完全一样,否则将无法安装。
图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:MyDataFavorites"
HKCU,"%User_Shell_Folders%","Personal",0x00020000,"E:MyDataMy Documents"
hkcu,"%User_Shell_Folders%","Cookies",0x00020000,"E:MyDataCookies"
HKCU,"%User_Shell_Folders%","Desktop",0x00020000,"E:MyDataDesktop"
HKCU,"%User_Shell_Folders%","My Pictures",0x00020000,"E:MyDataMy DocumentsMy Pictures"
[Strings]
User_Shell_Folders="SoftwareMicrosoftWindowsCurrentVersionExplorerUser Shell Folders"
{ad}把这个内容保存,设置文件的扩展名为.INF,然后在文件上单击鼠标右键,选择右键菜单中的安装就可以了实现注册表更改了。注销后再登录,注册表中的设置就可以生效了。为了节省磁盘空间,你还可以把原来位置的个人数据都删了。下次再重装完以后,只需要再执行一下执行INF文件,并重登陆一次,你原来的设置就回来了。
三、磁盘分区多个性——为驱动器增加功能
Windows有一个功能,可以自动读取驱动器(硬盘分区、光驱、U盘均可)下的AutoRun.inf文件,我们可以通过编制该文件实现操纵磁盘驱动器的功能。
我们先来个简单的,修改硬盘的盘符图标,并在操作分区是加入快捷操作某个程序的功能。在D盘新建一个文本文件,在里边输入:[AutoRun]
Icon=D:S.ico
//Icon用于设置盘符图标,这个图标必须为ico格式(可以用ACDSee将其他格式的图片转换为ico格式,或者将BMP的文件后缀直接改为ICO)
Open=D:foobar2000.exe D:S.fpl
//Open字段表示双击盘符时运行的程序,fpl文件是foobar的播放列表文件(winamp的是m3u文件)
保存该文件,将其命名为:AutoRun.inf即可。但是如果是双击的话,并不一定能满足我们的要求,这样会影响我们正常的访问硬盘分区,我们其实可以把音乐播放功能加到右键菜单里,在刚才的文件中加入:
shell=用foobar听歌
shellcommand=D: oobar2000.exe D:S.fpl
保存文件,再右击硬盘图标,你就可以在弹出菜单中找到“用foobar听歌”的菜单了。
同样的方法你可以在右键菜单中加入很多功能,或者在双击硬盘盘符时加入更多的动作。但是这样可能就会有危险产生,例如黑客只有向你硬盘中拷贝文件的权限,他就完全可以编制一个这样的INF文件,用Open打开一个其事先拷贝到硬盘中的木马或病毒文件。所以为了安全,有时我们需要考虑在驱动器上禁用INF功能。
最直接的方法当然是关闭硬盘读取AutoRun.inf文件的功能,选择“开始→运行”,输入:regedit,回车后打开注册表编辑器,定位到:HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExploer,双击右侧的“NoDriveTypeAutoRun”,其默认值是95,将其改为9D,然后打开任务管理器,将Explorer结束运行,并重新运行一次即可生效,硬盘读取AutoRun.inf的功能也就不再有用,如图5所示。
图5禁用自动读取AutoRun.inf功能
如果你还是觉得不踏实,就干脆禁用掉INF运行功能,打开注册表编辑器,定位到:HKEY_LOCAL_MACHINESoftwareCLASSES.inf,双击右侧的“默认”,将原来的:inffile,改为:txtfile即可,不过这样修改影响甚大,请谨慎使用。
INF文件功能强大这里介绍的仅仅是冰山一角,INF文件其他的功能例如用INF文件自动安装操作系统,锁定/解锁注册表,修改鼠标右键菜单等,读者还可自行尝试。
网友评论