基本情況
安裝監視器、數據機和印表機等設備所需的驅動程式,都是通過INF檔案,正是INF的功勞才使得Windows可以找到這些硬體設備的驅動並正確安裝。當我們通過“開始→控制臺→添加刪除程式→Windows安裝程式”來添加系統組件的時候,INF檔案將會自動調用。而在其他場合下,則需要在INF檔案上點擊滑鼠右鍵,然後選擇“安裝”,你才能順利安裝應用程式。
詳解
INF是Device INFormation File的英文縮寫,是Microsoft公司為硬體設備製造商發布其驅動程式推出的一種檔案格式,INF檔案中包含硬體設備的信息或腳本以控制硬體操作。在INF檔案中指明了硬體驅動該如何安裝到系統中,源檔案在哪裡、安裝到哪一個資料夾中、怎樣在註冊表中加入自身相關信息等等。 安裝監視器、數據機和印表機等設備所需的驅動程式,都是通過INF檔案,正是INF的功勞才使得Windows可以找到這些硬體設備的驅動並正確安裝。當我們通過“開始→控制臺→添加刪除程式→Windows安裝程式”來添加系統組件的時候,INF檔案將會自動調用。而在其他場合下,則需要在INF檔案上點擊滑鼠右鍵,然後選擇“安裝”,你才能順利安裝應用程式。
在%windir%/INF資料夾中存放有大量的INF檔案。該資料夾一般處在隱含狀態,如果你想查看該資料夾,可選擇“查看→資料夾選項→查看”,然後在“檔案和資料夾”選項下選擇“顯示所有檔案”。
結構
INF檔案其實是一種純文本檔案,可以用任意一款文本編輯軟體來打開進行編輯,如:記事本、寫字板等。INF檔案有一整套的編寫規則,每一個INF檔案都是嚴格按照這些規則來編寫的。
*規則一:INF檔案是分節的,每一個INF檔案有許多的節組成,節名用方括弧括起來。這些節名有些是系統定義好的,有一些是用戶自定義的。每一個節名最長為255個字元(Windows 2000/XP/2003作業系統中)或28個字元(Windows 98作業系統中)。節與節之間沒有先後順序的區別,另外,同一個INF檔案中如果出現兩個同樣的節名,則系統會自動將這兩個節名下面的條目合併到一起。
*規則二:在節與節之間的內容叫條目,每一個節又是由許多的條目組成的,每一個條目都是由形如“signature="$CHICAGO$"”的形式組成的。如果每一個條目的等號後有多個值,則每一個值之間用“,”號分隔開。
*規則三:INF檔案對大小寫不敏感。
*規則四:“;”號後面的內容為注釋。
*規則五:如果一個條目的內容過多,在一行無法書寫完全,則用“\”將一行內容書寫為多行。
明白了INF檔案的規則後,讓我們一起來解剖INF檔案的結構。
Version節
每一個INF檔案都包含一個這樣的節,該節中的條目主要是描述此INF檔案支持的設備類型和適用的作業系統。在該節中如果出現“signature="$CHICAGO$"”這樣的條目則表示該INF檔案適用於Windows 98之後的所有作業系統,如果包含“signature="$Windows NT$"”這樣的條目則表示該INF檔案適用於Windows 2000/XP/2003作業系統,而且兩者必具其一。
另外,該節中“CLASS”條目很重要,它表明了設備的類型,常見的類型有:Display(顯示設備,如顯示卡)、Media(多媒體設備,如音效卡)、Net(網路設備,通常是網卡)、Modem(數據機)、Printer(列印設備)、Image(圖像捕獲設備,如攝像頭)。
Manufacturer節
該節中的條目主要是描述INF檔案可以識別的所有硬體設備,其中包含有設備的生產廠家,以便設備的正確安裝。如“%ATi%=ATi”指明設備的生產商為“ATi”,這個大家都不會陌生吧,是顯示卡的生產商。
SourceDisksNames節
該節主要指明安裝檔案所在的介質。如:“1="ATi Drivers Release CD"”表明所有驅動程式都在零售版的CD糟上。
SourceDiskFiles節
驅動程式檔案列表及被安裝的位置,該節必須結合[SourceDisksNames]節才能知道具體的位置。如“atinbtxx.sys=1”,則你必須到[DestinationDirs]節去查看“1”具體代表那個位置。
DestinationDirs節
INF檔案會指示安裝程式在安裝的過程中,將一些檔案複製到硬碟上,或者將硬碟上的一些檔案刪除、重命名等。該節即指定了為實現上述目的的檔案所在的目的路徑。
DefaultInstall節和Install節
在這一節中描述了設備驅動程式與硬體設備的實際屬性。默認情況下,首先執行[DefaultInstall]節,該節指定了要複製或刪除的檔案,註冊表的更新,INF檔案的更新等等信息,同時又包含指向其他節的指針。
String節
這一節中定義了字元串變數
,當某些字元串頻繁地出現在INF檔案中,為簡化輸入,可以在該節中定義一個字元串變數,代表該字元串出現在INF檔案中。
讀懂INF檔案
下面讓我們以ATi顯示卡的用於Windows XP的WDM驅動程式為例來說明一下INF檔案的具體含義,由於INF檔案往往很長,為了說明方便,我們刪除了一些大部分的信息,僅保留一個INF檔案的結構,如圖1所示。
實例
光說不練不行,下面讓我們來看幾個INF檔案的典型套用。
打開“鎖”定的註冊表
第一步:打開記事本程式,輸入以下內容:
[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所示,被鎖的註冊表即會應聲而開。
巧妙利用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”。
硬碟(隨身碟)也需個性化
第一:給硬碟(隨身碟)DIY一個可愛的圖示
我們首先將硬碟的生硬圖示替換為我們喜歡的圖示,給硬碟披上美麗的彩衣。首先準備一圖示檔案,你可以用圖示製作程式製作自己的圖示檔案,也可以使用現成的圖示檔案,最好是保存到硬碟某一個分區的根目錄下。接著打開記事本程式,錄入以下內容:
[autorun]
ICON=******.ICO
其中“******”是圖示檔案的路徑及圖示檔案名稱,請自行修改為具體的圖示檔案的路徑及圖示檔案名稱。錄入完畢,另外儲存為“Autorun.inf”,並將其剪下到某一個你欲扮酷的分區的根目錄下。
第二:讓硬碟能歌善舞
想不想當你雙擊了硬碟分區或是點右鍵選擇右鍵選單中的“自動播放”之後,如圖3所示,就自動打開音樂播放程式,開始播放音樂檔案,讓動聽的音樂時刻環繞在你的左右。心動了吧,其實十分簡單,Come On。
接著在“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”。 利用此方法也可以設定當雙擊硬碟分區時自動播放影視檔案。
無人值守安裝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”為光碟機和盤符。
將屏保請進右鍵選單
當我們有事暫時離開一會兒,利用設有密碼的螢幕保護程式可以保護我們當前的操作不被他人偷看。但是,在默認的設定中,螢幕保護程式最快也要在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所示。點擊一下試試,是不是立即啟動螢幕保護程式了。
注意:其中的“ssstars.scr”為欲啟動的螢幕保護程式的檔案名稱,請用你喜歡的螢幕保護程式檔案來替換;如果你點選右鍵選單中的“螢幕保護”選項後,沒有反應即沒有啟動螢幕保護程式,請將文中的“/S "%1"”修改為“"%1" /S”即可。
將磁碟管理程式請進右鍵選單
對磁碟進行定期的整理是我們經常要做的一項工作,每次都是按部就班地點擊“開始→程式→附屬檔案→系統工具→磁碟碎片整理程式”,然後在彈出的選擇驅動器視窗中選擇要整理的分區,再點擊“碎片整理”按鈕開始整理。這樣比較麻煩,我們可以試一試將磁碟管理程式添加到右鍵選單。
第一步:打開記事本程式,輸入以下內容:
[version]
signature=”$chicago$”
[defaultinstall]
AddReg=addMe
[AddMe]
HKCR,"\Drive\shell\磁碟整理\command",,,"defrag.exe %1"
輸入完畢,另外儲存為AddDefrag.INF,名字任取,擴展名必須是INF。
第二步:在“AddDefrag.INF”檔案上右鍵單擊,在彈出的右鍵選單中點選“安裝”。
第三步:以後要進行磁碟整理,只需打開資源管理器,在相應的盤符上點右鍵,在彈出的右鍵選單中選擇“磁碟整理”即可(如圖5)。
解決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”刪除,保存檔案。
現在再試試,看問題是不是解決了。
在命令行下安裝INF檔案
通常情況下,我們都是在Windows環境下安裝INF檔案的,但是假如有一天,你需要在命令行運行INF檔案該怎么辦呢?
在命令行提示符後輸入“ rundll32 syssetup,SetupInfObjectInstallAction DefaultInstall 128 INF檔案所在的路徑及檔案名稱.inf ”,回車後即可安裝相應的INF檔案。
[pre]再提供兩個方法:
方法1. 運行RunDll32 advpack.dll,LaunchINFSection YOUINF.inf,DefaultInstall
方法2.修復右鍵安裝
操作步驟如下:
打開我的電腦,“工具”選單中的“資料夾選項”。切換至“檔案類型”選項卡,在其中找到inf檔案,點高級按鈕,雙擊“安裝”(如沒有“安裝”就添加一個),按如下內容修改
用於執行操作的應用程式:
C:\WINDOWS\System32\rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 %1
點選使用DDE(U)
應用程式(C):
setupapi
主題(T):
System
確認!
然後再次右鍵點選inf檔案安裝。