?? inf文件格式小結 - dooit - 博客園.htm
字號:
?<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0054)http://ttyp.cnblogs.com/archive/2005/07/21/197074.html -->
<HTML><HEAD id=Head><TITLE>INF文件格式小結 - DooIT - 博客園</TITLE>
<META http-equiv=Content-Type content="text/html; charset=utf-8">
<META id=metaKeywords content=INF文件格式小結 name=keywords>
<META
content=INF是DeviceINFormationFile的英文縮寫,是Microsoft公司為硬件設備制造商發布其驅動程序推出的一種文件格式,INF文件中包含硬件設備的信息或腳本以控制硬件操作。
name=description><LINK id=CommondCss
href="INF文件格式小結 - DooIT - 博客園.files/common.css" type=text/css
rel=stylesheet><LINK id=MainCss href="INF文件格式小結 - DooIT - 博客園.files/style.css"
type=text/css rel=stylesheet><LINK id=SecondaryCss
href="INF文件格式小結 - DooIT - 博客園.files/customcss.css" type=text/css
rel=stylesheet><LINK id=RSSLink title=RSS href="http://www.cnblogs.com/ttyp/rss"
type=application/rss+xml rel=alternate>
<SCRIPT src="INF文件格式小結 - DooIT - 博客園.files/common.js"
type=text/javascript></SCRIPT>
<META content="MSHTML 6.00.2900.3395" name=GENERATOR></HEAD>
<BODY>
<FORM id=Form1 name=Form1 onsubmit="javascript:return WebForm_OnSubmit();"
action=197074.html method=post>
<DIV><INPUT id=__EVENTTARGET type=hidden name=__EVENTTARGET> <INPUT
id=__EVENTARGUMENT type=hidden name=__EVENTARGUMENT> <INPUT
id=" __VIEWSTATE" type=hidden name=__VIEWSTATE> </DIV>
<SCRIPT type=text/javascript>
//<![CDATA[
var theForm = document.forms['Form1'];
if (!theForm) {
theForm = document.Form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]>
</SCRIPT>
<SCRIPT src="INF文件格式小結 - DooIT - 博客園.files/WebResource.axd"
type=text/javascript></SCRIPT>
<SCRIPT language=JavaScript>
function ctlent(evt,id)
{
if(evt.ctrlKey && evt.keyCode == 13)
{
try
{
TempSave(id);
}
catch(ex)
{
}
finally
{
__doPostBack('AjaxHolder$PostComment$btnSubmit','')
}
}
}</SCRIPT>
<SCRIPT language=JavaScript>function SetReplyAuhor(author){document.getElementById('AjaxHolder_PostComment_tbComment').value+="@"+author+"\n";document.getElementById('AjaxHolder_PostComment_tbComment').focus();return false}</SCRIPT>
<SCRIPT src="INF文件格式小結 - DooIT - 博客園.files/ScriptResource.axd"
type=text/javascript></SCRIPT>
<SCRIPT
src="D:\Backup\我的文檔\新建文件夾\INF文件格式小結 - DooIT - 博客園.files\ScriptResource(1).axd"
type=text/javascript></SCRIPT>
<SCRIPT
src="D:\Backup\我的文檔\新建文件夾\INF文件格式小結 - DooIT - 博客園.files\ScriptResource(2).axd"
type=text/javascript></SCRIPT>
<SCRIPT src="INF文件格式小結 - DooIT - 博客園.files/js" type=text/javascript></SCRIPT>
<SCRIPT type=text/javascript>
//<![CDATA[
function WebForm_OnSubmit() {
if (typeof(ValidatorOnSubmit) == "function" && ValidatorOnSubmit() == false) return false;
return true;
}
//]]>
</SCRIPT>
<DIV id=top>
<DIV>
<TABLE>
<TBODY>
<TR>
<TD class=HeaderTitles>
<H1 class=HeaderTitle><A class=HeaderMainTitle id=Header1_HeaderTitle
href="http://www.cnblogs.com/ttyp/">DooIT</A></H1>
<P id=tagline></P></TD></TR></TBODY></TABLE></DIV>
<DIV class=HeaderBar>
<TABLE class=HeaderBar id=HeaderBar cellSpacing=0 cellPadding=0>
<TBODY>
<TR>
<TD class=HeaderBarTab noWrap> <A id=Header1_MyLinks1_HomeLink
href="http://www.cnblogs.com/">博客園</A> :: <A
id=Header1_MyLinks1_MyHomeLink
href="http://www.cnblogs.com/ttyp/">首頁</A> :: <A
id=Header1_MyLinks1_NewPostLink
href="http://www.cnblogs.com/ttyp/admin/EditPosts.aspx?opt=1">新隨筆</A> ::
<A id=Header1_MyLinks1_ContactLink accessKey=9
href="http://www.cnblogs.com/ttyp/contact.aspx?id=1">聯系</A> :: <A
id=Header1_MyLinks1_Syndication
href="http://www.cnblogs.com/ttyp/rss">訂閱</A> <A class=XMLLink
id=Header1_MyLinks1_XMLLink href="http://www.cnblogs.com/ttyp/rss"><IMG
style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"
alt=訂閱 src="INF文件格式小結 - DooIT - 博客園.files/xml.gif"></A> :: <A
id=Header1_MyLinks1_Admin
href="http://www.cnblogs.com/ttyp/admin/EditPosts.aspx">管理</A> :: </TD>
<TD><IMG id=Header1_BlueTab
style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"
src="INF文件格式小結 - DooIT - 博客園.files/BlueTabRight.gif" align=absMiddle></TD>
<TD class=HeaderBarTabBack noWrap width="100%">
<DIV class=BlogStatsBar>
<TABLE class=BlogStatsBar>
<TBODY>
<TR>
<TD width="100%"></TD>
<TD class=BlogStatsBar noWrap> 47 隨筆 :: 16 文章 :: 1364 評論
:: 25 Trackbacks
</TD></TR></TBODY></TABLE></DIV></TD></TR></TBODY></TABLE></DIV></DIV>
<DIV id=leftmenu></DIV>
<DIV id=main>
<SCRIPT type=text/javascript>
//<![CDATA[
Sys.WebForms.PageRequestManager._initialize('AjaxHolder$scriptmanager1', document.getElementById('Form1'));
Sys.WebForms.PageRequestManager.getInstance()._updateControls(['tAjaxHolder$UpdatePanel1'], [], [], 90);
//]]>
</SCRIPT>
<DIV class=post>
<DIV class=postTitle><A id=AjaxHolder_ctl01_TitleUrl
href="http://www.cnblogs.com/ttyp/archive/2005/07/21/197074.html">INF文件格式小結</A>
</DIV>
<DIV class=postText>
<DIV twffan="done">INF是Device INFormation
File的英文縮寫,是Microsoft公司為硬件設備制造商發布其驅動程序推出的一種文件格式,INF文件中包含硬件設備的信息或腳本以控制硬件操作。</DIV>
<DIV twffan="done"> </DIV>
<DIV twffan="done"><STRONG>INFI的功能</STRONG></DIV>
<DIV twffan="done"> </DIV>
<DIV twffan="done">1 復制文件、刪除文件、或重新命名文件。<BR>2 新增或刪除注冊表(Registry)中的項目。<BR>3
修改重要的系統設置文件(如 Autoexec.bat、Config.sys、.INI 等)</DIV>
<DIV twffan="done"> </DIV>
<DIV twffan="done"><STRONG>INF的規則</STRONG></DIV>
<DIV twffan="done"> </DIV>
<DIV twffan="done">INF是純文本文件,它是分節的,這點和INI文件類似,每節以"[]"擴起來,每一個節名最長為255個字符(Windows
2000/XP/2003操作系統中)或28個字符(Windows
98操作系統中)。在節與節之間的內容叫條目,每一個節又是由許多的條目組成的,每一個條目都由=分開,如a="b"。如果每一個條目的等號后有多個值,則每一個值之間用","號分隔開。INF對大小寫不敏感,行注釋語句命令是";",類似VB里的'。如果一行寫不下,使用"\"來換行。</DIV>
<DIV twffan="done"> </DIV>
<DIV twffan="done"><STRONG>INF的運行</STRONG></DIV>
<DIV twffan="done"> </DIV>
<DIV
twffan="done">.INF文件是由Windows的SetupAPI解釋執行的腳本文件,它的運行過程很簡單,是一種線性的執行,線性的意思就是.INF文件的運行過程不存在分支語句,也就是沒有條件語句,一旦開始執行,就是沿著固定的路線運行。它的運行是按照節為單位來執行的,從某一個[Install]節開始執行,從上到下執行該節中的條目,如果該條目是一個節,那么就一條條執行子節中的條目,如此遞歸執行。在WINDOW上運行只要右擊這個文件,點擊安裝即可。</DIV>
<DIV twffan="done"> </DIV>
<DIV twffan="done"><BR><STRONG style="FONT-SIZE: 12pt">INF的語法結構</STRONG></DIV>
<DIV twffan="done"> </DIV>
<DIV twffan="done"><SPAN
style="COLOR: #0000ff">;指定版本和簽名節<BR></SPAN>[VERSION]<BR>;系統根據Signuture看是不是適合當前版本,如果適合的話就執行,否則不執行,當然強制安裝是可以的<BR>;用于WIN9X<BR>Signature="$CHICAGO$"<BR>;WINNT+<BR>;Signature="$Windows
NT$"</DIV>
<DIV twffan="done"> </DIV>
<DIV
twffan="done">;指定安裝文件布局<BR>該行是可選的,如果沒有提供布局信息文件,則在INF文件內必須包含[SourceDisksNames]和[SourceDisksFiles]節<BR>LayoutFile=filename.inf</DIV>
<DIV twffan="done"> </DIV>
<DIV twffan="done">[SourceDisksNames]節
<BR>[SourceDisksNames]節羅列源文件所在盤符序列碼、盤描述符、盤卷標號和盤序列號。
<BR>[SourceDisksNames]節內語句的語法為:
<BR>disk-ordinal=“disk-description”,disk-label,disk-serial-number
<BR>其中disk-ordinal為必選項,是盤符序列碼,標識一個源盤,具有惟一性,一般可設置為從1開始遞增的整數,0不是一個有效的盤符序列碼。當存在多個源盤時,盤符序列碼之間不能重復。
<BR>disk-description為必選項,是盤描述符,用雙引號括起的字符串或字符串宏描述盤的內容或目的。安裝引擎將該字符串顯示在對話框內以提示用戶。
<BR>disk-label為源盤的卷標識。 <BR>disk-serial-number未使用,但必須被設置為0。
<BR>[SourceDisksFiles]節 <BR>[SourceDisksFiles]節指定安裝時使用的源文件和盤符序列碼、盤描述符。
[SourceDisksFiles]節內語句的語法為: <BR>file-name=disk-number[,subdir] [,file-size]
<BR>其中file-name為必選項,是源盤上文件的名稱。
<BR>disk-number是包含file-name指定文件所在源盤的盤符序列碼,該盤符序列碼需在[SourceDisksNames]節中列出,并大于或等于1。
<BR>Subdir為可選項,指定文件所在源盤的子目錄,如省略則源盤為缺省安裝路徑。
<BR>file-size為可選項,表明文件的大小,以字節為單位。</DIV>
<DIV twffan="done"> </DIV>
<DIV
twffan="done"><BR><STRONG>[DestinationDirs]</STRONG><BR>;指定CopyFiles、RenFiles或DelFiles入口的缺省操作目錄<BR>;語法file-list-section=LDID,[Subdir]<BR>;LDID列表如下:<BR>;01
;current directory<BR>;04 ;backup directory<BR>;10 ;windows directory<BR>;11
;system dir<BR>;12 ;iosubsys<BR>;13 ;command<BR>;14 ;control panel
directory<BR>;15 ;printers directory<BR>;16 ;workgrou dir<BR>;17 ;inf dir<BR>;18
;help dir<BR>;19 ;administration dir<BR>;20 ;fonts<BR>;21 ;viewers<BR>;22
;vmm32<BR>;23 ;color dir<BR>;25 ;shared dir<BR>;26 ;winboot<BR>;28 ;host
winboot<BR>;30 ;root of boot drive<BR>;31 ;root of host drive of a virtual boot
drive<BR>;32 ;old windows dir if exists</DIV>
<DIV twffan="done"> </DIV>
<DIV twffan="done"><BR>;以下例子為安裝到window\web目錄下<BR>;DefaultDestDir=10,"web"</DIV>
<DIV twffan="done"> </DIV>
<DIV
twffan="done"><STRONG>[Install]<BR></STRONG>提供了一個INF文件安裝過程的總覽,它識別文件內其他包含安裝信息節的詳細動作,是Windows內建安裝函數識別安裝過程和內容的真正入口[Install]</DIV>
<DIV twffan="done"> </DIV>
<DIV
twffan="done">;[Install]節分[DefaultInstall]和[OtherInstall]兩類<BR>;[DefaultInstall]節節名DefaultInstall如前面表格內容所述被顯式地在注冊表中指定。<BR>;該節也是系統獲取INF文件中安裝信息的首要入口,當用戶右擊INF文件選“安裝”時該節內容被執行。<BR>;[OtherInstall]與[DefaultInstall]節遵循相同的語法,但必須被顯式地調用,常被用來定義反安裝動作</DIV>
<DIV twffan="done"> </DIV>
<DIV twffan="done"><BR>;缺省安裝節<BR><STRONG>[DefaultInstall]</STRONG></DIV>
<DIV twffan="done"> </DIV>
<DIV twffan="done">;指明添加注冊表的子節,等號后面的為自定義節名,例子見[add]節<BR>ADDREG=add</DIV>
<DIV twffan="done"> </DIV>
<DIV twffan="done"><BR>;指明要刪除的注冊表子節,等號后面的為自定義節名<BR>DELREG=del</DIV>
<DIV twffan="done"> </DIV>
<DIV
twffan="done"><BR>;指明要要復制的文件子節,用于安裝,Copyfiles命令可以替換系統正在訪問的文件。這些功能通過普通的del和copy命令都無法實現<BR>CopyFiles=cfile</DIV>
<DIV twffan="done"> </DIV>
<DIV
twffan="done"><BR>;指明要要刪除的文件子節,用于反安裝,多個節以逗號隔開,該命令如果發現要刪除的文件被鎖定,就會把文件放到系統刪除隊列中排隊<BR>;等系統重啟動的時候,該文件就自動被刪除了<BR><STRONG>DelFiles=刪除文件段<BR></STRONG>;[刪除文件段]<BR>;文件名列表<BR>;例子:<BR>;a.exe<BR>;b.sys</DIV>
<DIV twffan="done"> </DIV>
<DIV twffan="done">;重命名文件段<BR><STRONG>RenFiles=重命名文件段</STRONG></DIV>
<DIV twffan="done"> </DIV>
<DIV
twffan="done">;[重命名文件段]<BR>;語法:<BR>;[file-list-section]<BR>;new-file-name,old-file-name
<BR>;file1,file2 ;修改文件名file1為file2</DIV>
<DIV twffan="done"> </DIV>
<DIV twffan="done"><BR>;更新INI文件段內容子節<BR><STRONG>UpdateInis =
更新INI文件段</STRONG></DIV>
<DIV twffan="done"> </DIV>
<DIV twffan="done">;[更新INI文件段]<BR>;ini-file, ini-section, [old-ini-entry],
[new-ini-entry], [flags] <BR>;ini-file 包含要更改條目的 .ini
文件名<BR>;ini-section 包含要更改條目的節名<BR>;old-ini-entry 可選,常用形式為
Key=Value<BR>;new-ini-entry 可選,常用形式為 <BR>;Key=Value。flags 是可選操作標記</DIV>
<DIV twffan="done"> </DIV>
<DIV twffan="done">;例子<BR>;%01%\wincmd.ini,
Configuration,,"InstallDir=%01%"<BR>;%01%\wincmd.ini,
Configuration,,"Mainmenu=%01%\LANGUAGE\TCExtMenu.mnu"</DIV>
<DIV twffan="done"> </DIV>
<DIV twffan="done"><STRONG>;更新ini文件值內容</STRONG><BR>updateinifield = </DIV>
<DIV twffan="done"> </DIV>
<DIV twffan="done"><STRONG>;ini文件更新注冊表</STRONG><BR>ini2reg=aa.ini</DIV>
<DIV twffan="done"> </DIV>
<DIV
twffan="done"><STRONG>;更新config.sys內容<BR></STRONG>updatecfgsys=更新autoexec.bat段</DIV>
<DIV twffan="done"> </DIV>
<DIV twffan="done">[更新autoexec.bat段]</DIV>
<DIV twffan="done"> </DIV>
<DIV
twffan="done">;更新autoexec.bat內容<BR>updateautobat=更新autoexec.bat段<BR>[更新autoexec.bat段]</DIV>
<DIV twffan="done"> </DIV>
<DIV
twffan="done"><BR>;定義資源節,像資源文件,調用時使用%REG_SZ%就代表了0x00000000<BR><STRONG>[Strings]</STRONG><BR>REG_SZ=0x00000000<BR>REG_BINARY=0x00000001<BR>REG_DWORD=0x00010001</DIV>
<DIV twffan="done"> </DIV>
<DIV twffan="done"> </DIV>
<DIV twffan="done"> </DIV>
<DIV twffan="done"><STRONG>;自定義添加注冊表項的節</STRONG><BR>[add]</DIV>
<DIV twffan="done"> </DIV>
<DIV
twffan="done">;注意格式:HKEY(根鍵縮寫),Subkey(子鍵),Valuename(鍵值名),Type(鍵值類型),Value(鍵值)<BR>;HKCU ->
HKEY_CURRENT_USER<BR>;HKCR -> HKEY_CLASSES_ROOT<BR>;HKLM ->
HKEY_LOCAL_MACHINE<BR>;HKU -> HKEY_USERS<BR>;HKU ->
HKEY_USERS<BR>;HKCC -> HKEY_CURRENT_CONFIG<BR>;HKDD ->
HKEY_DYN_DATA</DIV>
<DIV twffan="done"> </DIV>
<DIV
twffan="done">;解禁注冊表編輯器<BR>HKCU,Software\Microsoft\Windows\CurrentVersion\Policies\System,DisableRegistryTools,1,0<BR>;解禁IE的Internet選項<BR>HKCU,Software\Policies\Microsoft\Internet
Explorer\Restrictions,NoBrowserOptions,1,0<BR>;解禁IE的Internet選項里面的各個具體選項<BR>HKCU,Software\Policies\Microsoft\Internet
Explorer\Restrictions,NoBrowserOptions,1,0<BR>HKCU,Software\Policies\Microsoft\Internet
Explorer\Control Panel,Settings,1,0<BR>HKCU,Software\Policies\Microsoft\Internet
Explorer\Control Panel,HomePage,1,0<BR>HKCU,Software\Policies\Microsoft\Internet
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -