倍可親

回復: 0
列印 上一主題 下一主題

一個文件的精彩 深挖INF文件格式功能

[複製鏈接]

711

主題

768

帖子

1036

積分

一星貝殼精英

有車階層(十級)

Rank: 4

積分
1036
跳轉到指定樓層
樓主
mgshong 發表於 2006-3-23 19:08 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
 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文件傳真服務需要哪些組件。

  

  圖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

 二、個人設置不再丟――備份常用文件夾

  說是備份個人設置,不如理解成重定向個人設置文件夾的位置更為貼切。我們常用的一些個人設置文件夾,如:收藏夾、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%","ersonal",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"

  把這個內容保存,設置文件的擴展名為.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文件自動安裝操作系統,鎖定/解鎖註冊表,修改滑鼠右鍵菜單等,讀者還可自行嘗試。
您需要登錄后才可以回帖 登錄 | 註冊

本版積分規則

關於本站 | 隱私權政策 | 免責條款 | 版權聲明 | 聯絡我們

Copyright © 2001-2013 海外華人中文門戶:倍可親 (http://big5.backchina.com) All Rights Reserved.

程序系統基於 Discuz! X3.1 商業版 優化 Discuz! © 2001-2013 Comsenz Inc.

本站時間採用京港台時間 GMT+8, 2025-7-25 16:50

快速回復 返回頂部 返回列表