大家都知道,在“我的電腦”裡有數也數不清的INF檔案,但是卻很少有人知道,INF檔案是幹什麼用的。充其量,也僅僅停留在INF檔案能夠解開鎖定的注
冊表這一感性的認識上,那麼到底什麼是INF檔案,INF檔案又能幹些什麼呢?今天讓我們一起走進INF檔案這一神秘的世界。
揭開INF檔案的神秘面紗
INF是Device INFormation
File的英文縮寫,是Microsoft公司為硬體裝置製造商發布其驅動程式推出的一種檔案格式,INF檔案中包含硬體裝置的資訊或指令碼以控制硬體操
作。在INF檔案中指明了硬體驅動該如何安裝到系統中,源檔案在哪裡、安裝到哪一個檔案夾中、怎樣在註冊表中加入自身相關資訊等等。安裝監視器、調製解調
器和印表機等裝置所需的驅動程式,都是通過INF檔案,正是INF的功勞才使得Windows可以找到這些硬體裝置的驅動並正確安裝。當我們通過“開始→
控制台→添加刪除程式→Windows安裝程式”來添加系統組件的時候,INF檔案將會自動調用。而在其他場合下,則需要在
INF檔案上點擊滑鼠右鍵,然後選擇“安裝”,你才能順利安裝應用程式。
在C:/Windows/INF檔案夾中存放有大量的INF檔案。該檔案夾一般處在隱含狀態,如果你想查看該檔案夾,可選擇“查看→檔案夾選項→查看”,然後在“檔案和檔案夾”選項下選擇“顯示所有檔案”。
解剖INF檔案的結構
INF檔案其實是一種純文字檔案,可以用任意一款文本編輯軟體來開啟進行編輯,如:記事本、寫字板等。INF檔案有一整套的編寫規則,每一個INF檔案都是嚴格按照這些規則來編寫的。
*規則一:INF檔案是分節的,每一個INF檔案有許多的節組成,節名用方括弧括起來。這些節名有些是系統定義好的,有一些是使用者自訂的。每一個節
名最長為255個字元(Windows 2000/XP/2003作業系統中)或28個字元(Windows
98作業系統中)。節與節之間沒有先後順序的區別,另外,同一個INF檔案中如果出現兩個同樣的節名,則系統會自動將這兩個節名下面的條目合并到一起。
*規則二:在節與節之間的內容叫條目,每一個節又是由許多的條目組成的,每一個條目都是由形如“signature="$CHICAGO$"”的形式組成的。如果每一個條目的等號後有多個值,則每一個值之間用“,”號分隔開。
*規則三:INF檔案對大小寫不敏感。
*規則四:“;”號後面的內容為注釋。
*規則五:如果一個條目的內容過多,在一行無法書寫完全,則用“\”將一行內容書寫為多行。
明白了INF檔案的規則後,讓我們一起來解剖INF檔案的結構。
1.Version節
每一個INF檔案都包含一個這樣的節,該節中的條目主要是描述此INF檔案支援的裝置類型和適用的作業系統。在該節中如果出現“signature=
" $CHICAGO$"”這樣的條目則表示該INF檔案適用於Windows
98之後的所有作業系統,如果包含“signature="$Windows NT$"”這樣的條目則表示該INF檔案適用於Windows
2000/XP/2003作業系統,而且兩者必具其一。
另外,該節中“CLASS”條目很重要,它表明了裝置的類型,常見的類型有:
Display(顯示裝置,如顯卡)、Media(多媒體裝置,如音效卡)、Net(網路裝置,通常是網卡)、Modem(數據機)、Printer
(列印裝置)、Image(映像擷取裝置,如網路攝影機)。
2.Manufacturer節
該節中的條目主要是描述INF檔案可以識別的所有硬體裝置,其中包含有裝置的生產廠家,以便裝置的正確安裝。如“%ATi%=ATi”指明裝置的生產商為“ATi”,這個大家都不會陌生吧,是顯卡的生產商。
3.SourceDisksNames節
該節主要指明安裝檔案所在的介質。如:“1="ATi
Drivers Release CD"”表明所有驅動程式都在零售版的CD盤上。
4.SourceDiskFiles節
驅動程式檔案清單及被安裝的位置,該節必須結合[SourceDisksNames]節才能知道具體的位置。如“atinbtxx.sys=1”,則你必須到[DestinationDirs]節去查看“1”具體代表那個位置。
5.DestinationDirs節
INF檔案會指示安裝程式在安裝的過程中,將一些檔案複製到硬碟上,或者將硬碟上的一些檔案刪除、重新命名等。該節即指定了為實現上述目的的檔案所在的目的路徑。
6.DefaultInstall節和Install節
在這一節中描述了裝置驅動程式與硬體裝置的實際屬性。預設情況下,首先執行[DefaultInstall]節,該節指定了要複製或刪除的檔案,註冊表的更新,INF檔案的更新等等資訊,同時又包含指向其他節的指標。
7.String節
這一節中定義了字串變數,當某些字串頻繁地出現在INF檔案中,為簡化輸入,可以在該節中定義一個字串變數,代表該字串出現在INF檔案中。
讀懂INF檔案
下面讓我們以ATi顯卡的用於Windows XP的WDM驅動程式為例來說明一下INF檔案的具體含義,由於INF檔案往往很長,為了說明方便,我們刪除了一些大部分的資訊,僅保留一個INF檔案的結構,1所示。
圖1
INF檔案精彩執行個體
光說不練不行,下面讓我們來看幾個INF檔案的典型應用。
1.開啟“鎖”定的註冊表
第一步:開啟記事本程式,輸入以下內容:
[version]
signature=”$chicago$”
[defaultinstall]
delReg=DeleteMe
[DeleteMe]
HKCU,“Software\Microsoft\Windows\CurrentVersion\Policies\System”,“DisableregstryTools”
HKLM,“Software\Microsoft\Windows\CurrentVersion\Policies\System”,“DisableregstryTools”
輸入完畢,另存新檔UNLOCK.INF,名字任取,副檔名必須是INF。
第二步:在“UNLOCK.INF”檔案上按右鍵,在彈出的右鍵菜單中點選“安裝”,2所示,被鎖的註冊表即會應聲而開。
圖2
2.巧妙利用INF檔案自動備份重要的檔案
大家都知道,註冊表是Windows作業系統的命根子,因此,系統啟動時會自動運行註冊表檢查程式,自動更新備份註冊表檔案。在系統硬碟的
Windows
目錄中有一個“Scanreg.ini”,Scanregw.exe每天所執行的預設操作都是在它的控制下啟動並執行,我們可以利用這一原理實現對我們重要文
件的備份。
第一步:開啟資源管理員,找到該檔案,用記事本程式開啟它。我們可以清楚地看到共有五個參數,。
(1)Backup 這個參數值可為0或1,預設為1。值為1表示在每天初次開機時掃描註冊表,值為0表示不進行任何註冊表操作。
(2)Optimize 這個參數值可為0或1,預設為1。值為1表示每次掃描註冊表時刪除註冊表中的多餘資料,從而最佳化註冊表資料,值為0表示不進行刪除操作。
(3)ScanregVersion=0.0001 程式版本說明。
(4)MaxBackupCopies 這個參數用來設定建立的備份檔案的個數,值為5至99中的任一個數,預設值為5,即最大可建立五個備份檔案,為更好的保護系統,一般來說設定10個左右為宜。
(5)BackupDirectory 這個參數用來設定備份檔案存放的目錄,預設存放目錄為Windows\Sysbckup,注意這裡填寫的必須是完整路徑。
(6)Files 在“Scanreg.ini”的最後有如下注釋內容“;Files=[dir
code,]file1,file2,file3”,將其前面的注釋符號“;”去掉,你就可以自己DIY需要註冊表檢查程式備份的重要檔案了。預設情況
下,註冊表檢查程式建立註冊表備份檔案時,會將“system.dat”、“system.ini”、“user.dat”和“win.ini”四個檔案
儲存在“cab”壓縮檔中,如果你需要將其他重要的系統設定檔添加到此壓縮檔中,可在“Files=”後面輸入“[目錄代碼],檔案名稱1,檔案名稱
2,檔案名稱3”,檔案名稱之間以逗號相隔,目錄代碼含義如下:
10 代表C:\Windows目錄
11 代表C:\Windows\System目錄
30 代表C盤根目錄
31 代表Windows系統所在盤的根目錄
例如要把Autoexec.bat和Config.sys兩個檔案放到備份檔案中,可設定參數為“File=30,config.sys,autoexec.bat”。
3.硬碟(隨身碟)也需個人化
第一:給硬碟(隨身碟)DIY一個可愛的表徵圖
我們首先將硬碟的生硬表徵圖替換為我們喜歡的表徵圖,給硬碟披上美麗的綵衣。首先準備一表徵圖檔案,你可以用表徵圖製作程式製作自己的表徵圖檔案,也可以使用現成的表徵圖檔案,最好是儲存到硬碟某一個分區的根目錄下。接著開啟記事本程式,錄入以下內容:
[autorun]
ICON=******.ICO
其中“******”是表徵圖檔案的路徑及表徵圖檔案名稱,請自行修改為具體的表徵圖檔案的路徑及表徵圖檔案名稱。錄入完畢,另存新檔“Autorun.inf”,並將其剪下到某一個你欲扮酷的分區的根目錄下。
第二:讓硬碟能歌善舞
想不想當你雙擊了硬碟分區或是點右鍵選擇右鍵菜單中的“自動播放”之後,3所示,就自動開啟音樂播放程式,開始播放音樂檔案,讓動聽的音樂時刻環繞在你的左右。心動了吧,其實十分簡單,Come On。
圖3
接著在“Autorun.inf”檔案中錄入以下內容:
OPEN=D:\Program
Files\foobar2000
foobar2000.exe
d:\qs.fpl
其中“D:\Program
Files\foobar2000
foobar2000.exe”是筆者喜愛的播放器Foobar2000的具體位置,如果你用的是Winamp或其它的播放器,請替換為具體的播放器
所在的位置,“d:\qs.fpl”是Foobar2000播放器的播放清單檔案,你也可以替換為某一個具體的音樂檔案所在的路徑。如果你用的是
Winamp則播放清單檔案應是“*.m3u”。 利用此方法也可以設定當雙擊硬碟分區時自動播放影視檔案。
4.無人值守安裝Windows 98
在Windows 98安裝光碟片中有一個Batch工具,可以製作用於無人值守安裝的指令碼,即產生一個包含安裝Windows 98時需要和安裝嚮導進行互動的各種資訊的INF檔案——Msbatch.inf。
首先找到位於Windows
98安裝光碟片“/tools
/reskit/batch”目錄中的“setup”程式表徵圖安裝Batch98工具。
接著,運行Batch工具,按照嚮導提示產生“msbatch.inf”檔案,並將該檔案儲存到磁碟片中。具體的產生方法請參考有關資料,這裡不再贅述。
當需要重新安裝Windows
98時,用啟動盤進入到DOS提示符下,將儲存有“msbatch.inf”檔案的磁碟片插入軟碟機,將Windows
98安裝光碟片插入光碟機,在DOS提示符後鍵入如下命令:“x:/win98/setup
a:msbatch.inf”,斷行符號後即可。其中“X”為光碟機和盤符。
5.將屏保請進右鍵菜單
當我們有事暫時離開一會兒,利用設有密碼的螢幕保護裝置程式可以保護我們當前的操作不被他人偷看。但是,在預設的設定中,螢幕保護裝置程式最快也要在1分鐘以後才能夠啟動,那麼怎樣才能快速啟用螢幕保護裝置程式呢?
最常見的方法是在案頭上建立一個啟動屏保的捷徑,在需要時雙擊即可啟動。另外,我們還可以將屏保請進右鍵菜單!
第一步:開啟記事本程式,錄入以下內容:
[version]
signature=”$chicago$”
[defaultinstall]
AddReg=AddMe
[AddMe]
HKCR,"CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\pingbao",,,"螢幕保護裝置"
HKCR,"CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\pingbao\COMMAND",,,"ssstars.scr
/S \"%1\""
錄入完畢,經檢查無誤後,另存新檔“PingBao.inf”,檔案名稱可任取,副檔名必須是INF。
第二步:在“PingBao.inf”檔案上按右鍵,在彈出的右鍵菜單中點選“安裝”。
第三步:當需要運行螢幕保護裝置的時候,回到案頭上,在“我的電腦”表徵圖上點擊右鍵選擇“螢幕保護裝置”選項,4所示。點擊一下試試,是不是立即啟動螢幕保護裝置程式了。
圖4
注意:其中的“ssstars.scr”為欲啟動的螢幕保護裝置程式的檔案名稱,請用你喜歡的螢幕保護裝置程式檔案來替換;如果你點選右鍵菜單中的“螢幕保護裝置”選項後,沒有反應即沒有啟動螢幕保護裝置程式,請將文中的“/S \"%1\"”修改為“\"%1\" /S”即可。
6.將磁碟管理程式請進右鍵菜單
對磁碟進行週期性整理是我們經常要做的一項工作,每次都是按部就班地點擊“開始→程式→附件→
系統工具→磁碟磁碟重組程式”,然後在彈出的選擇磁碟機視窗中選擇要整理的分區,再點擊“磁碟重組”按鈕開始整理。這樣比較麻煩,我們可以試一試將磁碟管
理程式添加到右鍵菜單。
第一步:開啟記事本程式,輸入以下內容:
[version]
signature=”$chicago$”
[defaultinstall]
AddReg=addMe
[AddMe]
HKCR,"\Drive\shell\磁碟整理\command",,,"defrag.exe %1"
輸入完畢,另存新檔AddDefrag.INF,名字任取,副檔名必須是INF。
第二步:在“AddDefrag.INF”檔案上按右鍵,在彈出的右鍵菜單中點選“安裝”。
第三步:以後要進行磁碟整理,只需開啟資源管理員,在相應的盤符上點右鍵,在彈出的右鍵菜單中選擇“磁碟整理”即可(5)。
圖5
7.解決ATi顯卡無法安裝公版驅動的問題
有些第三方的ATi顯卡無法安裝公版的驅動程式,造成該問題的原因是多方面的,如有些第三方廠商在硬體上做了改動,採用了非公版的PCB設計和BIOS等,這都可能會導致無法安裝公版驅動程式的情況發生。當你的顯卡遇到這個問題該怎麼辦呢?
首先將你下載的ATi顯卡驅動程式解壓縮到硬碟任一目錄下,在“ATiDrive”子目錄中找到會列出所有的inf檔案,ATiixpxx.inf
—— 適用於Windows XP,ATii9xxx.inf——適用於Windows 9x ,ATii2kxx.inf適用於Windows
2000 。
接著開啟作業系統對應的INF檔案,通過功能表列的編輯——尋找功能,尋找“ati.mfg”字串,隨後會看到“RADEON 7000、RADEON 7200、RADEON 7500、RADEON 8500”等條目資訊,將其刪除。
接著尋找與你的顯卡匹配的字串,如筆者的RADEON 7500顯卡,就尋找“RADEON 7500”,找到如下資訊:“RADEON
7500=ati2mtag_RV200,PCI\VEN_1002&&&&DEV_5157&&
&&SUBSYS_013A1002”,將“&&&&SUBSYS_013A1002”刪除,儲存文
件。
現在再試試,看問題是不是解決了。
8.在命令列下安裝INF檔案
通常情況下,我們都是在Windows環境下安裝INF檔案的,但是假如有一天,你需要在命令列運行INF檔案該怎麼辦呢?
在命令列提示符後輸入“
rundll32 syssetup,SetupInfObjectInstallAction DefaultInstall 128 INF檔案所在的路徑及檔案名稱.inf ”,斷行符號後即可安裝相應的INF檔案。