首先要看什么是.INF文件
簡單來說就是微軟為安裝硬件驅(qū)動所開發(fā)的一種腳本。可以用來節(jié) 拷貝、刪除文件,增、刪注冊表鍵,更改系統(tǒng)設(shè)置.
先看一下這篇文章 Windows系統(tǒng)下INF 詳細(xì)說明 http://innovatechautomation.com//html/8075_1.html
INF是Device INFormation File的英文縮寫,INF文件是Microsoft公司為硬件設(shè)備制造商發(fā)布其驅(qū)動程序推出的一種文件格式,INF文件中包含硬件設(shè)備的信息或腳本以控制硬件操作。
在INF文件中指明了硬件驅(qū)動該如何安裝到系統(tǒng)中,源文件在哪里、安裝到哪一個文件夾中、怎樣在注冊表中加入自身相關(guān)信息等等。I
NF文件是由標(biāo)準(zhǔn)的ASCII碼組成,您可以用任何一款文字編輯器查看修改其中的內(nèi)容。
裝信息INF文件與Windows內(nèi)建的安裝服務(wù)引擎(API函數(shù)庫)緊密協(xié)同工作,基于其嚴(yán)格的編寫語法制作而成的INF文件在拷貝、刪除文件,增、刪注冊表鍵,更改系統(tǒng)設(shè)置等方面都有優(yōu)秀的表現(xiàn),完全可以用來實現(xiàn)應(yīng)用程序文件安裝的目標(biāo)!
二、INF文件的一些規(guī)則?
規(guī)則1:INF文件不區(qū)別大小寫。但出于提高可讀性的目的,請在編寫節(jié)名時保持大小寫一致性。
規(guī)則2:節(jié)名的最大長度是有限制的。在基于 Windows NT 操作系統(tǒng)上,請確保節(jié)名不超過 255 字節(jié)的最大長度。
規(guī)則3:使用“;”分號為注釋符。也就是說inf 文件分析器會跳過與分號同處一行并出現(xiàn)在分號后面的任何字符,除非分號出現(xiàn)由引號 (") 或百分比符號 (%) 括起的字符串中,如,"stri;ng" 、%stri;ng%。
規(guī)則4:使用百分比符號 (%%)為字串轉(zhuǎn)換符號。類似于定義變量。
規(guī)則5:使用用“\”作為分行符號。如果一個項(條目)的內(nèi)容過多,在一行無法書寫完,則可以在需要斷開項的地方插入反斜杠 (\) 可在下一行繼續(xù)編寫該項。 但是,如果項指定了一個以反斜杠結(jié)束的值 (如目錄路徑),請將字符串或反斜杠用引號括起來。例如,用 \Programs\MyTestApps"\"可將反斜杠重新解釋為行繼續(xù)符。
規(guī)則6:INF文件是分節(jié)的,每一個INF文件有許多的節(jié)組成,節(jié)名用方括號括起來。某些節(jié)名是系統(tǒng)定義好的,不可以更改的。節(jié)與節(jié)之間沒有先后順序的區(qū)別,另外,同一個INF文件中如果出現(xiàn)兩個同樣的節(jié)名,則系統(tǒng)會自動將這兩個節(jié)名下面的條目合并到一起。
規(guī)則7:在節(jié)與節(jié)之間的內(nèi)容叫項(也有的翻譯成條目),每一個節(jié)又是由許多的項組成的,每一個項都是由形如“Signature="$WINDOWS NT$"”的形式組成的。如果每一個項的等號后有多個值,則用逗號 (,) 將節(jié)項中提供的值分開。 逗號與逗號之間的值可為空,但逗號不能隨意省略。值是對書寫的位置敏感的。在值列表中間省略某個可選值時,必須保留逗號。但是,在用于 Windows NT操作系統(tǒng)的 .inf 文件中可以省略后綴逗號。
規(guī)則8:應(yīng)用下列條件時,請用一對引號 (") 括起字符串:
a、字符串包含必須保留為字符串的一部分的前導(dǎo)或后綴空白。用一對引號括起字符串可防止 .inf 文件分析器丟棄前導(dǎo)或后綴空白。.inf 文件分析器不會丟棄內(nèi)部空白,而是將它保留為字符串的一部分。
b、字符串很長,為了在文本編輯器中換行而包含了內(nèi)部換行符或回車符。用一對引號括起字符串可防止在第一個內(nèi)部換行符或回車符處截斷字符串。
c、字符串包含分號。用一對引號括起字符串可防止在分號處截斷字符串。
d、字符串以反斜杠結(jié)束。用一對引號括起字符串可防止將反斜杠解釋為行繼續(xù)符。
e、括起字符串的引號是字符串的一部分。要保留帶顯式引號的字符串,請用另一對引號括起這個帶引號的字符串。例如,用 ""somestring"" 保留字符串 "somestring"。
f、要保留單個引號 ("),請在該位置用兩個引號 ("")。例如,用 ""some""string"" 保留 "some"string"。
g、.inf 文件分析器不但丟棄最外面的一對引號,而且將剩下的每對相鄰引號轉(zhuǎn)換為單個的引號字符。也就是說,"""some string""" 在分析后將變成 "some string"。
h、用下劃線 (_) 表示字符串關(guān)鍵字名稱中的空格。
規(guī)則9:節(jié)中的每項以換行符或回車符作為結(jié)束標(biāo)志。 因此,使用文本編輯器編寫 .inf 文件時一定不能任意插入換行符或回車符,因為 .inf 文件分析器可能將項或節(jié)的結(jié)束解釋到錯誤的位置。但是.inf 文件分析器會忽略只包含換行符或回車符的空行或空白行。 請確保項中的值列中不包含不必要的空格。
三、INF文件的結(jié)構(gòu)
[Version] 用于確認(rèn) .inf 文件的基本版本信息。包含以下項:
Signature是必選項,每個INF文件都必需指定的項。Signature是用來指定INF文件所能工作的系統(tǒng)版本。其值如下:
"$CHICAGO$" 表明這個inf文件可以用于windows 95以后的所有平臺上,目前來說就是win98,winme,winnt4,win2k,winxp,win2k3。
"$Windows 95$" 表明這個inf文件可以用于windows 95以后的Win9x平臺上,目前來說就是win98,winme。
"$Windows NT$" 表明這個inf文件可以用于WindowsNT系列的平臺上,包括winnt4,win2k,winxp,win2k3。WIN9x系列的操作系統(tǒng)的SetupAPI將會拒絕執(zhí)行這種類型的inf文件。
Provider 可選項。用于指定 .inf 文件創(chuàng)建者名的字符串。在驅(qū)動INF文件也用于指定設(shè)備的生產(chǎn)商。
LayoutFile 可選項。對包含安裝該組件所需布局信息文件。一般只用于系統(tǒng)自帶的INF文件。用于指定源盤和文件路徑等信息。
Class 可選項。用于定義驅(qū)動的類別名稱。如:Class=hdc。
ClassGuid 可選項。驅(qū)動類別的GUID,其值的形式為{nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn},一般是唯一的。
CatalogFile 可選項。用于指定驅(qū)動簽名的CatalogFile文件。
DriverVer 可選項。用于指定驅(qū)動日期和版本號。如:DriverVer=07/01/2001,5.1.2600.5512。
[color=Red][SourceDisksNames][/color]節(jié),用于指定應(yīng)用程序所駐留的源磁盤上的名稱和路徑?梢灾付ǘ鄠源磁盤。
diskid = disk-description [,[tag-or-cab-file],[,path][,flags][,tag-file]]
diskid 必選項。標(biāo)識源盤的唯一號碼。如果有多個源盤,則每個源盤都必須有唯一的序號。
disk-description 必選項。說明這張磁盤的內(nèi)容或用途的字符串或字符串主項。安裝程序向用戶顯示該字符串以標(biāo)識磁盤。此說明文字用雙引號引起來。
tag-or-cab-file 可選項。tag或cabinet文件名。此說明文字用雙引號引起來。
path 可選項。tag或cabinet文件在源磁盤的路徑。此說明文字用雙引號引起來。省缺則默認(rèn)為源磁盤根目錄。
flags 可選項(Windows XP以后版本)。有效值為0x10。選用該項則tag-or-cab-file選項應(yīng)為cabinet文件,tag -file選項應(yīng)為tag文件。
tag -cab-file 可選項(Windows XP以后版本)。tag文件名。該文件應(yīng)在源磁盤根目錄或path項定義的路徑中,此說明文字用雙引號引起來。
如:1=%DiskName%,file.tag,, 或者1="Codec4WMP Files","Code4WMP.cab",,"i386"
[SourceDisksFiles] 用于INF文件所駐留的源磁盤上指定文件的名稱和路徑。
filename = diskid[,[ subdir][, size]]
filename 必選項,文件源名
diskid 必選項。必選項。指定包含源文件的磁盤的整數(shù)。此值和包含源文件的路徑必須定義在同一 .inf 文件的 SourceDisksFiles 節(jié)中包含文件的源盤序號,而且必須是大于或等于 1 的值(0 是無效的盤號參數(shù)值)。
subdir 可選項。用于指定源文件所駐留磁盤上子目錄的字符串;該子目錄相對于SourceDisksNames 節(jié)中指定的路徑(如果有)。如果沒有使用該參數(shù),則默認(rèn)值是源盤上的根文件夾。 size 可選參數(shù),以字節(jié)為單位指定文件大小。
如:hdj.sys=1 或者h(yuǎn)dj.dll=1,hdj,999
[DestinationDirs] 用于指定要進(jìn)行文件操作所需要的具體路徑。
[DefaultDestDir=dirid[,subdir]]
[filelist-section=dirid[,subdir]]
DefaultDestDir 可選項。用于定義默認(rèn)文件操作的目錄。
filelist-section 可選項。CopyFiles、RenFiles 或 DelFiles 節(jié)的名稱。
dirid 必選項。邏輯磁盤標(biāo)識 (dirid)。-1至 32767及65535的數(shù)字為系統(tǒng)已定義的邏輯磁盤標(biāo)識。相當(dāng)于目錄宏。-1表示為絕對路徑。常見的對應(yīng)關(guān)系如下:
%10% Windows C:\Windows
%11% System32 C:\Windows\system32
%12% Drivers C:\Windows\system32\drivers
%17% inf C:\Windows\inf
%18% Help C:\Windows\Help
%20% Fonts C:\Windows\Fonts
%21% Viewers C:\Windows\system32\viewers
%23% Color C:\Windows\system32\spool\drivers\color
%24% Apps C:\
%25% Shared C:\Windows
%30% Boot C:\
%50% System16 C:\Windows\system
%51% Spool C:\Windows\system32\spool
%52% Spooldrivers C:\Windows\system32\spool\drivers\w32x86
%53% Userprofile C:\Documents and Settings\username
%54% Loader C:\
%55% Printprocessor C:\Windows\system32\spool\Prtprocs\w32x86
%16406% All Users\Start Menu C:\Documents and Settings\All Users\Start Menu
%16407% All Users\Start Menu\Programs C:\Documents and Settings\All Users\Start Menu\Programs
%16408% All Users\Start Menu\Programs\Startup C:\Documents and Settings\All Users\Start Menu\Programs\Startup
%16409% All Users\Desktop C:\Documents and Settings\All Users\Desktop
%16415% All Users\Favorites C:\Documents and Settings\All Users\Favorites
%16419% All Users\Application Data C:\Documents and Settings\All Users\Application Data
%16422% Program Files C:\Program Files
%16425% system 32 on RISC C:\Windows\system32
%16426% Program Files on RISC C:\Program Files
%16427% Program Files\Common C:\Program Files\Common
%16428% x86 Program Files\Common on RISC C:\Program Files\Common
%16429% All Users\Templates C:\Documents and Settings\All Users\Templates
%16430% All Users\Documents C:\Documents and Settings\All Users\Documents
%16437% All Users\Documents\My Music C:\Documents and Settings\All Users\Documents\My Music
%16438% All Users\Documents\My Pictures C:\Documents and Settings\All Users\Documents\My Pictures
[Strings] 這一節(jié)中定義了字符串變量,當(dāng)某些字符串頻繁地出現(xiàn)在INF文件中,為簡化輸入,可以在該節(jié)中定義一個字符串變量,代表該字符串出現(xiàn)在INF文件中。
[string_key = value ]
strings-key 由字符和數(shù)字組成的唯一名稱。
value 由字母、數(shù)字或其他可打印字符組成的字符串。如果在項目類型中使用需要雙引號的相應(yīng)字符串主項,則應(yīng)該用雙引號將它引起來。
[Optional Components] 用于列出用戶單擊“控制面板”上的“添加/刪除程序”圖標(biāo),單擊“安裝 Windows”選項卡,然后單擊“從磁盤安裝”按鈕時,顯示的 installsection 節(jié)。在列表中installsection節(jié)會當(dāng)作復(fù)選框顯示。如:
[Optional Components]
Codec4WMP
[Codec4WMP]
OptionDesc ="Codec4WMP addon pack"
Tip ="Codec4WMP by仙乃日"
Modes =0,1,2,3
CopyFiles=copy.sys,copy.wmp,copy.wmp.Codec4WMP
Registerdlls=register.codecs
AddReg=Codec4WMP.Reg
DelReg=deloldwmpreg
ProfileItems =codec.Config
UpdateInis=codec.Config1
安裝節(jié)
[DefaultInstall] | [OtherInstall-section-name]
[CopyFiles=@filename | CopyFiles-section-name [,CopyFiles-section-name] ...]
[CopyINF=filename1.inf[,filename2.inf]...]
[AddReg= AddReg -section-name [,AddReg -section-name]...]
[Include=filename1.inf[,filename2.inf]...]
[Needs= Needs -section-name [,Needs -section-name]...]
[Delfiles= Delfiles -section-name [,Delfiles -section-name]...]
[Renfiles= Renfiles -section-name [,Renfiles -section-name]...]
[DelReg= DelReg -section-name [,DelReg -section-name]...]
[BitReg= BitReg -section-name [,BitReg -section-name]...]
[ProfileItems= ProfileItems -section-name [,ProfileItems -section-name]...]
[UpdateInis= UpdateInis -section-name [,UpdateInis -section-name]...]
[UpdateIniFields= UpdateIniFields -section-name [,UpdateIniFields -section-name]...]
[Ini2Reg= Ini2Reg -section-name [,Ini2Reg -section-name]...]
[RegisterDlls= RegisterDlls -section-name [,RegisterDlls -section-name]...]
[UnregisterDlls= UnregisterDlls -section-name [,UnregisterDlls -section-name]...][/color]
[DefaultInstall] 和 [DefaultUnInstall] 是系統(tǒng)保留的節(jié)名,用于默認(rèn)的安裝和卸載。系統(tǒng)保留的安裝節(jié)名還包括:[ClassInstall32]|[ClassInstall32.nt] |[ClassInstall32.ntx86] |[ClassInstall32.ntia64] | [ClassInstall32.ntamd64] 等。這些節(jié)所包含的項都是一樣,項其實就是操作命令。
[CopyFiles-section-name]
destination-file-name[,source-file-name][,temporary-file-name][,flag]
CopyFiles-section-name是指執(zhí)行文件復(fù)制操作的節(jié)名,可以自定義。但必需在“安裝節(jié)”下列出。
destination-file-name目標(biāo)文件名。如果沒有給出源文件名,那么它也是源文件名。
source-file-name 可選項。源文件名。文件復(fù)制操作的源文件名不一定要和目標(biāo)文件名完全相同。
temporary-file-name 可選項。文件復(fù)制操作的臨時文件名。安裝程序?qū)?fù)制源文件,但給它臨時文件名。下一次啟動操作系統(tǒng)時,將把臨時文件名重命名為目標(biāo)文件名。
Flag 可選項。用于指定在復(fù)制進(jìn)程期間執(zhí)行某個操作的數(shù)字值。Flag值的具體含義如下:
COPYFLG_WARN_IF_SKIP 1 0x00000001 用戶嘗試跳過發(fā)生錯誤后產(chǎn)生的文件時警告他。
COPYFLG_NOSKIP 2 0x00000002 關(guān)鍵安裝:不允許用戶跳過復(fù)制文件的操作。
COPYFLG_NOVERSIONCHECK 4 0x00000004 忽略版本檢查并且始終復(fù)制文件。這將會覆蓋較新的文件。
COPYFLG_FORCE_FILE_IN_USE 8 0x00000008 強制重命名。安裝程序?qū)⒃撐募鳛檎谑褂玫奈募M(jìn)行處理。只有文件已經(jīng)存在于用戶的計算機(jī)上時才會發(fā)生這種情況。
COPYFLG_NO_OVERWRITE 16 0x00000010 如果文件已經(jīng)在目標(biāo)計算機(jī)上,則不會復(fù)制。
COPYFLG_NO_VERSION_DIALOG 32 0x00000020 抑制版本沖突對話框,并且不會覆蓋較新的文件。
COPYFLG_OVERWRITE_OLDER_ONLY 64 0x00000040 不改寫目標(biāo)目錄中的現(xiàn)有文件。
COPYFLG_REPLACEONLY 1024 0x00000400 僅當(dāng)源文件存在于目標(biāo)目錄中時才將它復(fù)制到目標(biāo)目錄中。
COPYFLG_NODECOMP 2048 0x0000800 源文件已壓縮,復(fù)制時不解壓。
COPYFLG_REPLACE_BOOT_FILE 4096 0x00001000 當(dāng)源文件為系統(tǒng)文件時提示重新啟動系統(tǒng)。
CE_COPYFLG_NO_DATE_DIALOG 536870912 0x20000000 如果目標(biāo)文件比源文件新,請勿復(fù)制此文件。
CE_COPYFLG_NODATECHECK 1073741824 0x40000000 改寫目標(biāo)文件時忽略數(shù)據(jù)。
CE_COPYFLG_SHARED 2147483648 0x80000000 考慮共享 DLL 時,創(chuàng)建一個引用。
CopyFiles還可以使用文件名搭配 "@" 字符來強制復(fù)制單個文件 (在這種情況下源文件名和目標(biāo)文件名必須相同,并且不能使用臨時文件) 。如:
[aliide_Inst]
CopyFiles = @aliide.sys
CopyFiles = @pciidex.sys
CopyFiles = @atapi.sys
[DeleteFiles-section-name]
destination-file-name[,,,flag]
destination-file-name目標(biāo)文件名。如果沒有給出源文件名,那么它也是源文件名。
Flag 可選項。用于指定在復(fù)制進(jìn)程期間執(zhí)行某個操作的數(shù)字值。如果不將flag 參數(shù)設(shè)為1,在執(zhí)行 DelFiles 節(jié)時如果正在使用該文件,則不能從計算機(jī)上刪除此文件。
仙乃日 發(fā)表于 2010-7-28 08:20
[renamefiles-section-name]
new-file-name, old-file-name
new-file-name 新文件名。
old-file-name 舊文件名。
[addregistry-section-name]
reg_root,subkey,[value_name],[flags],[value]
指定在安裝期間向設(shè)備注冊表添加的子鍵或值,可以有選擇地設(shè)置它的值。
reg-root 必選項。注冊表根鍵,用于指定注冊表根位置的字符串。
例子:
[Codec4WMP.Reg]
hklm,"SOFTWARE\Microsoft\MediaPlayer\Player\Extensions\Descriptions","10",,"Lossy Audio Files (*.aac;*.m4a;*.mpc;*.mpp;*.mp+;*.ogg;*.ogm;*.spx)"
[Delregistry-section-name]
reg-root, subkey[, value-entry-name][, flags][, value]
reg-root 必選項。注冊表根鍵。
subkey 必選項,子鍵或分支,所指定注冊表根下要設(shè)置的注冊表路徑的值。
value-entry-name可選項。值項名稱,用于指定現(xiàn)有子項值中的值名稱。
value 可選項(適用WindowsXP以后版本)。值項數(shù)據(jù)。
flags 可選項(適用WindowsXP以后版本)。操作參數(shù),用于指定控制注冊表操作的值。
參數(shù)具體如下:
FLG_DELREG_KEYONLY_COMMON 8192 0x00002000 刪除子鍵
FLG_DELREG_32BITKEY 16384 0x00004000 修改32位注冊表,默認(rèn)本地注冊表
FLG_DELREG_MULTI_SZ_DELSTRING 98306 0x00018002 刪除值項
更新ini文件操作
[UpdateInis-section-name]
ini-file,ini-section,[old-ini-entry], [new-ini-entry], [flags]
ini-file 必選項,更改條目的 .ini文件的文件名。名必須是字符串或字符串主項(字符串主項的形式可為 %strkey%,其中 strkey 是在 .inf 文件的 Strings 節(jié)中定義的)。在任何情況下名稱都必須是有效文件名。名稱應(yīng)包括文件所在文件夾的名稱,但是文件夾名應(yīng)以邏輯目錄標(biāo)識符 (LDID) 指定,而不是實際名稱。在安裝期間安裝程序?qū)⒂脤嶋H名稱替換 LDID。LDID 的形式為 %ldid%,其中 ldid 是預(yù)定義標(biāo)識符或在 DestinationDirs 節(jié)中定義的標(biāo)識符。注意常數(shù) LDID_BOOT 和 LDID_BOOTHOST 被替換,在路徑中加上反斜線。例如,LDID_BOOT 用 C:\ 替換。但是在 .inf 文件中可以使用反斜線,也可以不使用。例如,在引導(dǎo)驅(qū)動器的根中,可以使用“%30%boot.ini”和“%30%\boot.ini”來引用 BOOT.ini。
ini-section 必選項,更改條目的.ini 文件中的節(jié)名。
old-ini-entry 可選項,現(xiàn)有條目,常用形式為 Key=Value。
new-ini-entry 可選項,替換、刪除或添加的條目,常用形式為 Key=Value。主項或值都可以指定可替代字符串。例如,在參數(shù) new-ini-entry 中指定的主項或值可能為 %String1%,替代 %String1% 的字符串定義在 .inf 文件的 Strings 節(jié) 指定主項和值時可以使用星號 (*) 通配符,可以正確地解釋此符號。
flags 可選項。操作參數(shù)。
這個操作項在win9x的系統(tǒng)比較經(jīng)常使用。
[UpdateIniFields-section-name]
ini-file,ini-section,profile-name,[old-field],[new-field],[flags]
ini-file 必選項,要更改的 .ini 文件的文件名。
ini-section 必選項,.ini 文件中要更改的節(jié)名。
profile-name 必選項,.ini 文件中要更改的條目名稱。
rold-field 可選項。.ini 文件中要刪除的“字段”值。
new-field 可選項,要添加.ini 文件而原來沒有的字段值。
flags 可選項。
[Ini2Reg-section-name]
ini-file,ini-section,[ini-key],reg-root,subkey[,flags]
ini-file 必選項,要復(fù)制到注冊表的 .ini 文件的文件名。
ini-section 必選項,要復(fù)制到注冊表的.ini文件中的節(jié)名。
ini-key 可選項,要復(fù)制到注冊表的 .ini 文件中的項名。如果 ini-key 為空,則將整節(jié)復(fù)制到指定的注冊表項。
reg-root 必選項。目標(biāo)注冊表根鍵。
subkey 必選項,目標(biāo)子鍵或分支。
flags 可選項。操作參數(shù)。
[RegisterDlls-section-name]
dirid, [subdir], filename, registration flags[, [optional timeout][, argument]]
dirid 必選項,是邏輯磁盤標(biāo)識或在DestinationDirs 節(jié)中定義的標(biāo)識符
subdir 可選項,目錄路徑。
filename必選項。動態(tài)鏈接庫名稱。
registration flags 必選項,操作參數(shù),用于指定控制動態(tài)鏈接庫注冊操作的值:
FLG_REGSVR_DLLREGISTER 1 0x00000001 調(diào)用DllRegisterServer函數(shù) ,動態(tài)鏈接庫系統(tǒng)登錄(即注冊)
FLG_REGSVR_DLLINSTALL 2 0x00000002 調(diào)用DllInstall函數(shù),動態(tài)鏈接庫系統(tǒng)登錄(即注冊)
optional timeout 可選項,延時(秒),缺省延時是60 秒。
argument 可選項,注冊命令。缺省是“/RegServer”,用于指定控制注冊表操作的值。
例子:
[register.codecs]
11,,msvcp71.dll,1
11,,msvcr71.dll,1
11,,pncrt.dll,1
11,,rmoc3260.dll,1
11,,DCBassSource.ax,1
[UnregisterDlls-section-name]
dirid, [subdir], filename, registration flags[, [optional timeout][, argument]]
dirid 必選項,是邏輯磁盤標(biāo)識或在 DestinationDirs 節(jié)中定義的標(biāo)識符
subdir 可選項,目錄路徑。
filename必選項。動態(tài)鏈接庫名稱。
registration flags 必選項,操作參數(shù),用于指定控制動態(tài)鏈接庫注冊操作的值:
FLG_REGSVR_DLLREGISTER 1 0x00000001 調(diào)用DllUnRegisterServer函數(shù) ,動態(tài)鏈接庫系統(tǒng)注銷
FLG_REGSVR_DLLINSTALL 2 0x00000002 調(diào)用DllInstall函數(shù),動態(tài)鏈接庫系統(tǒng)登錄(即注冊)
optional timeout 可選項,延時(秒),缺省延時是60 秒。
argument 可選項,注冊命令。缺省是“/UnRegServer”,用于指定控制注冊表操作的值。
thesnow 發(fā)表于 2010-7-28 14:46
[ProfileItems-section-name]
Name=link-name
[,name-attributes]
CmdLine=dirid,[subdir],filename
[SubDir=path]
[WorkingDir=wd-dirid,wd-subdir]
[IconPath=icon-dirid,[icon-subdir],icon-filename]
[IconIndex=index-value]
[HotKey=hotkey-value] [Infotip=info-tip]
[DisplayResource="ResDllPath\ResDll",ResID]
link-name 必選項,指定程序目錄(圖標(biāo))名稱。名必須是字符串或字符串主項(字符串主項的形式可為 %strkey%,其中 strkey 是在 .inf 文件的 Strings 節(jié)中定義的)。DisplayResource省略,則程序圖標(biāo)的顯示名稱為link-name。
name-attributes 可選項,表明程序目錄(圖標(biāo))屬性或具體操作的參數(shù)。
FLG_PROFITEM_CURRENTUSER 1 0x00000001 程序目錄(圖標(biāo))屬當(dāng)前用戶,不用本值則程序目錄(圖標(biāo)) 屬所有用戶
FLG_PROFITEM_DELETE 2 0x00000002 刪除程序目錄(圖標(biāo)),不用本值則添加程序目錄(圖標(biāo))
FLG_PROFITEM_GROUP 4 0x00000004 link-name是開始菜單\程序下(Start\Programs)的程序目錄(group),不用本值則link-name是程序圖標(biāo)(item)而不是程序目錄。
CmdLine 添加程序圖標(biāo)必選項,指定程序圖標(biāo)的目標(biāo)(快捷方式的命令)。
dirid 必選項,目標(biāo)位置,是邏輯磁盤標(biāo)識或在DestinationDirs 節(jié)中定義的標(biāo)識符。
subdir 可選項,目標(biāo)所在目錄。
filename 必選項,可執(zhí)行文件名或命令。
SubDir 可選項,指定程序目錄(圖標(biāo)) 所在開始菜單\程序下的路徑。
SubDir省略,則默認(rèn)程序目錄(圖標(biāo))在開始菜單\程序下。
WorkingDir 可選項,指定程序圖標(biāo)的目標(biāo)起始位置(工作目錄)。
WorkingDir省略,則目標(biāo)起始位置默認(rèn)為程序圖標(biāo)所在目錄。
wd-dirid 必選項,是邏輯磁盤標(biāo)識或在 DestinationDirs 節(jié)中定義的標(biāo)識符。
wd-subdir 可選項,工作目錄。
IconPath 可選項,指定程序圖標(biāo)的目標(biāo)圖標(biāo)。
IconPath省略,則目標(biāo)圖標(biāo)默認(rèn)為CmdLine指定程序的圖標(biāo)
icon-dirid 必選項,是邏輯磁盤標(biāo)識或在 DestinationDirs 節(jié)中定義的標(biāo)識符。
icon-subdir 可選項,所在目錄。
icon-filename 必選項,圖標(biāo)名。
IconIndex 可選項,指定程序圖標(biāo)的目標(biāo)索引。
IconIndex省略,則目標(biāo)備注默認(rèn)為CmdLine指定程序的索引 。
HotKey 可選項,指定程序圖標(biāo)的目標(biāo)熱鍵(快捷鍵)。
Infotip 可選項,指定程序圖標(biāo)的目標(biāo)備注(字符串的形式可為 %strkey%,其中 strkey 是在 .inf 文件的 Strings 節(jié)中定義的)。如InfoTip = "@%11%\shell32.dll,-22531"即為“使用屏幕“計算器”執(zhí)行基本的算術(shù)任務(wù)“。
DisplayResource WindowsXP以后版本可選項,指定動態(tài)鏈接庫的資源作為程序圖標(biāo)的顯示名稱,其中:ResDllPath為動態(tài)鏈接庫文件所在路徑,ResDll為動態(tài)鏈接庫文件,ResID為Resource ID即資源的ID號。如: DisplayResource="%11%\shell32.dll",22019顯示名稱“計算器”。
[ControlFlags]
ExcludeFromSelect = *
刪除所有(如果*指定)或設(shè)備,從某些用戶界面顯示,用戶從中選擇一個,預(yù)計安裝特定設(shè)備指定列表。
對于基于NT的操作系統(tǒng),指定的設(shè)備將不會顯示在添加硬件向?qū)В珪业叫碌挠布陀布孪驅(qū)э@示。
對于Windows 9x/Me,指定的設(shè)備將不會顯示任何設(shè)備選擇向?qū)А?br />
rundll32.exe setupapi,InstallHinfSection MPS_MP_HAL 132 %windir%\inf\hal.inf
VOID CALLBACK InstallHinfSection(
__in HWND hwnd,
__in HINSTANCE ModuleHandle,
__in PCTSTR CmdLineBuffer,
__in INT nCmdShow
);
Value Description
0 System provided INF. 系統(tǒng)提供的INF。
128 Set the default path of the installation to the location of the INF. This is the typical setting. 設(shè)置默認(rèn)的安裝路徑的INF位置。這是典型的設(shè)置。
+0 Never reboot the computer. 不重新啟動計算機(jī)。
+1 Reboot the computer in all cases. 在任何情況下重新啟動計算機(jī)。
+2 Always ask the users if they want to reboot. 始終詢問用戶是否要重新啟動。
+3 Reboot the computer if necessary without asking user for permission. 如有必要,重新啟動計算機(jī)不詢問用戶。
+4 If a reboot of the computer is necessary, ask the user for permission before rebooting 如果計算機(jī)重新啟動是必要的,在重新啟動前詢問。