[轉(zhuǎn)載]InstallShield內(nèi)部庫函數(shù)之5 Sd對話框函數(shù)
InstallShield內(nèi)部庫函數(shù)之5? Sd對話框函數(shù)
??? InstallShield提供一些Sd對話框函數(shù),用戶可自定義和顯示。Sd對話框使用可以創(chuàng)建用戶輸入的對話框的特殊腳本定義函數(shù)來創(chuàng)建。然后該對話框根據(jù)所作選擇返回值給腳本。
??? Sd對話框有一個Cancel按鈕,當(dāng)它被選中時不返回一個CANCEL值。而是調(diào)用缺省的退出處理。
下面是所有有效的Sd對話框函數(shù)的列表:
DialogSetInfo
改變由一些內(nèi)部對話框函數(shù)呈現(xiàn)的對話框的顯示元素。
SdAskDestPath
呈現(xiàn)一個對話框,允許最終用戶指定安裝的一個目標(biāo)位置。
SdAskOptions
創(chuàng)建一個對話框,它比標(biāo)準(zhǔn)AskOptions函數(shù)更靈活。
SdAskOptionsList
呈現(xiàn)一個對話框,允許最終用戶選定和撤消選定一個列表中的項目。
SdBitmap
在對話框中顯示一個位圖。
SdComponentDialog
顯示一個對話框,允許最終用戶選擇安裝的組件和目標(biāo)文件夾。
SdComponentDialog2
顯示一個對話框,允許最終用戶選擇要安裝的文件夾、組件和子部件。
SdComponentDialogAdv
顯示一個對話框,允許最終用戶選擇安裝的組件和目標(biāo)文件夾。
SdComponentMult
顯示一個對話框,允許最終用戶選擇安裝的組件和子部件。有關(guān)磁盤空間的附加信息也被提供來確定安裝的最佳位置。
SdComponentTree
顯示一個有樹形控制控件的對話框,允許最終用戶選擇安裝的組件和子部件。有關(guān)磁盤空間的附加信息也被提供來確定安裝的最佳位置。
SdConfirmNewDir
提示用戶確認(rèn)文件夾的選擇。
SdConfirmRegistration
提示最終用戶確認(rèn)輸入到由SdRegisterUser或SdRegisterUserEx呈現(xiàn)對話框中的信息。
SdDisplayTopics
顯示主題列表。
SdExceptions
顯示一個對話框,通知最終用戶遇到一個共享、鎖定(在使用中)或只讀文件。
SdFinish
顯示一個對話框,通知最終用戶安裝完成并提供一個選項的選擇,如是否要查看信息文件或運行一個應(yīng)用程序。
SdFinishEx
顯示一個對話框,通知最終用戶安裝完成。
SdFinishReboot
顯示一個對話框,通知用戶安裝完成并提供一個重啟Windows 和計算機選項的選擇。
SdInit
準(zhǔn)備一個調(diào)用Sd對話框函數(shù)的安裝。
SdLicense
顯示一個許可證協(xié)議并給最終用戶一個接受或拒絕許可證條款的選項。
SdLoadString
返回和一個指定資源ID相聯(lián)系的字符串值。
SdMakeName
創(chuàng)建一個自定義對話框的節(jié)名。該節(jié)名在向一個 .iss文件寫或從一個.iss文件讀時使用。.iss文件由 InstallShield Silent使用。
SdOptionsButtons
顯示一個有用戶定義按鈕的對話框,提供給最終用戶不同選擇。
SdProductName
在腳本對話框的特定靜態(tài)區(qū)中插入你的產(chǎn)品名。
SdRegisterUser
顯示一個可輸入用戶名和公司名的對話框。
SdRegisterUserEx
顯示一個對話框,最終用戶可在里面輸入用戶姓名、公司名稱和應(yīng)用程序序列號。
SdSelectFolder
呈現(xiàn)一個對話框,允許最終用戶從程序文件夾列表中選擇一個文件夾。
SdSetupType
顯示一個對話框,使最終用戶能選擇三種標(biāo)準(zhǔn)安裝類型之一:典型、簡易或自定義。
SdSetupTypeEx
顯示一個對話框,允許最終用戶選擇標(biāo)準(zhǔn)或自定義安裝類型。
SdShowAnyDialog
顯示一個資源DLL的通用對話框。當(dāng)用SdShowAnyDialog函數(shù)顯示一個對話框時你不能從最終用戶接受任何輸入。
SdShowDlgEdit1
顯示一個對話框,它有一個單行的編輯區(qū)和其它靜態(tài)控件。
SdShowDlgEdit2
顯示一個對話框,有兩個單行的編輯區(qū)和其它靜態(tài)控件。
SdShowDlgEdit3
顯示一個對話框,有三個單行的編輯區(qū)和其它靜態(tài)控件。
SdShowFileMods
呈現(xiàn)一個對話框,預(yù)覽對文件的可能修改并允許最終用戶同意修改、拒絕修改或要求將修改寫到一個文件中。
SdShowInfoList
在一個對話框中顯示一個可滾動的消息列表。
SdShowMsg
在一個小窗口中顯示一個消息。
SdStartCopy
呈現(xiàn)一個對話框,顯示已經(jīng)由最終用戶指定的選項和設(shè)置。
SdWelcome
顯示一個通用歡迎。
SdWelcomeMaint
顯示一個在維護(hù)安裝開始時使用的對話框。
5.1? DialogSetInfo
語法:DialogSetInfo (nInfoType, szInfoString, nParameter);
說明:DialogSetInfo函數(shù)修改下列在InstallShield對話框中顯示的元件:
顯示的圖象;
得到最終用戶選擇的復(fù)選框的風(fēng)格;
指示有效和所需磁盤空間值的精度。
??? 通過調(diào)用DialogSetInfo產(chǎn)生的修改對安裝的剩余部分保持為有效或直到它們又被隨后的對DialogSetInfo的調(diào)用修改。如果你的腳本在調(diào)用任何Sd對話框函數(shù)前調(diào)用DialogSetInfo,在 DialogSetInfo的調(diào)用前必須先調(diào)用SdInit。否則,對DialogSetInfo的調(diào)用無效。
參數(shù):
nInfoType
指定要修改的顯示特征。在該參數(shù)位置傳遞下列預(yù)定義的常量之一:
DLG_INFO_USEDECIMAL:缺省時,顯示的指示組件大小、有效磁盤空間和所需磁盤空間的值被四舍五入到最近的KB或MB。下列對話框受該參數(shù)影響:ComponentDialog, SdComponentDialog, SdComponentDialog2, SdComponentDialogAdv 和SdComponentMult。
DLG_INFO_KUNITS:缺省時,顯示的指示組件大小、有效磁盤空間和所需磁盤空間的值以KB為度量。傳遞該參數(shù)同時nParameter設(shè)置為FALSE時則以MB為度量顯示這些值。下列對話框受該參數(shù)影響:SdComponentTree, ComponentDialog, SdComponentDialog, SdComponentDialog2, SdComponentDialogAdv 和SdComponentMult。
DLG_INFO_ALTIMAGE:指定一個顯示在該對話框中的候選位圖。如果nParameter設(shè)置為TRUE,szInfoString必須指定在該對話框顯示的圖象。該參數(shù)應(yīng)用于所有在對話框右上角顯示標(biāo)準(zhǔn)安裝圖象的InstallShield對話框(和圖象顯示在對話框左邊一個大圖象的右上角的Welcome, SdWelcome和SdFinish對話框)。更多的信息可查看下面參數(shù)nParameter處描述的"當(dāng)nInfoType是.DLG_INFO_ALTIMAGE"。
??? 由SetDisplayEffect設(shè)置的顯示效果不能應(yīng)用到交替圖象,通常它們顯示時沒有任何特殊效果.
DLG_INFO_CHECKSELECTION:指定選擇方法將由nParameter傳遞的常量確定。注意SdComponentTree不支持改變復(fù)選框類型。
szInfoString
當(dāng)DLG_INFO_ALTIMAGE傳遞給nInfoType時,該參數(shù)指定要顯示的候選位圖的文件名和一組位圖屬性(可選)。如果包括了位圖屬性,傳遞給該參數(shù)的字符串必須如下格式化:
?"位圖文件名;透明標(biāo)志;<未用>;<未用>;透明色"
位圖文件名:
指定位圖文件名。如果文件名未限定(也就是說,如果它不包括一個驅(qū)動器指示符和路徑),InstallShield在SUPPORTDIR查找該位圖。
透明標(biāo)志:
指示是否透明顯示位圖。當(dāng)該標(biāo)志是1(真)時,該位圖中所有其顏色是由szInfoString的透明色參數(shù)指定的RGB值的部分都透明顯示。該參數(shù)缺省為0(非透明)。
未用:
格式行的這些部分都被忽略,但它們必須被包括。也就是說,格式行串必須包括四個分號,三個分號在透明標(biāo)志和透明色之間。
透明色:
指示透明顯示的顏色。透明色必須用一個RGB值來表示,也就是,三個數(shù)值型值由逗號分隔。如果沒有指定值,即使透明標(biāo)志設(shè)置為1,位圖也不會被透明顯示。
??? 下面的例子將顯示MyBitmap.bmp文件的位圖,它位于SUPPORTDIR文件夾。位圖所有黑色部分(RGB值為0,0,0)將被透明顯示。
"MyBitmap.bmp;1;;;0,0,0"
注意:標(biāo)準(zhǔn)位圖為57×53。一個候選位圖必須也約是這個大小。如果位圖大于這個大小,它會在標(biāo)題區(qū)中垂直置中,位圖的右邊將和對話框的右邊對齊。(在Welcome, SdWelcome, 和 SdFinish對話框中,位圖的右邊將和它所呈現(xiàn)在的更大的位圖的右邊對齊)。位圖左邊將盡可能擴展到對話框左邊。位圖擴展在對話框標(biāo)題區(qū)下的任何部分將被剪切掉。如果位圖小于57×53,它將被正確顯示,但它將不被調(diào)整大小或被擴展。
??? 當(dāng)缺省位圖被重新裝入或nInfoType不是DLG_INFO_ALTIMAGE時該參數(shù)被忽略
nParameter
和nInfoType相聯(lián)系一起來指定對話框特性。
當(dāng)nInfoType是DLG_INFO_CHECKSELECTION時,傳遞下列預(yù)定義常量之一來指定復(fù)選框風(fēng)格:
CHECKBOX:指定Windows 3.1風(fēng)格的復(fù)選框。
CHECKBOX95:指定標(biāo)準(zhǔn)(Windows 95 風(fēng)格)復(fù)選框。如果不調(diào)用DialogSetInfo,這是缺省的復(fù)選框風(fēng)格。
CHECKLINE:指定復(fù)選行風(fēng)格的復(fù)選框。
CHECKMARK:指定復(fù)選標(biāo)記風(fēng)格的復(fù)選框。
當(dāng)nInfoType是DLG_INFO_ALTIMAGE,傳遞下列預(yù)定義常量之一來指定顯示位圖:
-1:指定對話框必須顯示缺省位圖。
TRUE:指定由szInfoString指示的位圖必須在隨后的對話框中使用,就如前面在szInfoString下描述的一樣。
當(dāng)nInfoType是DLG_INFO_KUNITS 或DLG_INFO_USEDECIMAL時,傳遞下列預(yù)定義常量之一來指定大小如何顯示:
TRUE:指定大小按照nInfoType指示的顯示。
FALSE:指定大小按照缺省風(fēng)格顯示。
返回值:
0??表明函數(shù)成功設(shè)置了指定的風(fēng)格。
< 0??表明函數(shù)未能設(shè)置該風(fēng)格。
注解:
·為預(yù)覽調(diào)用DialogSetInfo的效果,運行InstallShield范例,改變對話框的屬性(通過單擊屬性按鈕),然后檢驗如SdComponentDialog2和 SdComponentMult的對話框的改變。
·每次你要改變一個對話框的細(xì)節(jié)方面時都必須調(diào)用DialogSetInfo。
你可以使用DLG_INFO_ALTIMAGE參數(shù)來激活16色、256色或真彩色(24位)的位圖。注意當(dāng)256色的位圖在16色系統(tǒng)中顯示或真彩色位圖在256色系統(tǒng)中顯示時會有顏色失真。建議你指定一與目標(biāo)系統(tǒng)的顏色模式兼容的候選圖象。
5.2? SdAskDestPath
語法:SdAskDestPath (szTitle, szMsg, svDir, nReserved);
說明:SdAskDestPath函數(shù)創(chuàng)建一個對話框,允許最終用戶選擇一個候選目標(biāo)路徑。當(dāng)你單擊對話框中的瀏覽按鈕,SelectDir函數(shù)被調(diào)用來打開一個二次對話框使最終用戶可以選擇一個存在的文件夾或輸入一個新的文件夾名。
參數(shù):
szTitle
指定對話框標(biāo)題。為顯示缺省標(biāo)題("選擇文件夾") ,給該參數(shù)傳遞一個空字符串("")。
szMsg
指定顯示在對話框的文本。該文本被考慮為一個靜態(tài)控件。在你的消息字符串中使用%P位置夾來插入已經(jīng)由先前的一個對SdProductName的調(diào)用指定的產(chǎn)品名稱(如果有)。為顯示對話框的缺省指示,傳遞一個空字符串("")。
svDir
指定缺省選定的目錄名。返回由最終用戶選定的目錄名。
nReserved
給該參數(shù)傳遞0。不允許其它值。
返回值:
NEXT (1):指定Next按鈕被單擊。
BACK (12):指定Back按鈕被單擊。
注解:
·運行在靜止方式的安裝程序必須創(chuàng)建在調(diào)用SdAskDestPath前不存在的新文件夾。這樣可以確保確認(rèn)對話框不被顯示。沒有這一步驟,則需要兩個響應(yīng)文件來處理兩種可能情況。
5.3? SdAskOptions
語法:SdAskOptions (szTitle, szMsg1, szMsg2, szId, szComponents, nExclusiveFlag);
說明:SdAskOptions 函數(shù)創(chuàng)建一個對話框,提供安裝選項。你可以使用復(fù)選框或單選鈕作為選擇按鈕。顯示在按鈕旁邊的信息從一組選項中檢索得到。選項的缺省數(shù)目是4。必要時你可以增加或減去組中選項的數(shù)目。
??? SdAskOptions運行于由系統(tǒng)變量MEDIA指定的當(dāng)前媒體上。在安裝的初始化中,InstallShield給MEDIA賦缺省媒體名("DATA"),它和你的文件媒體庫(Data1.cab)相聯(lián)系。為顯示腳本創(chuàng)建的組件,可按4.6中的相同步驟進(jìn)行:
如果你的安裝不使用一個安裝類型的對話框,你必須在調(diào)用SdAskOptions之前調(diào)用ComponentSetupTypeSet來指定一個已經(jīng)在IDE安裝類型窗格中定義的安裝類型
系統(tǒng)變量MEDIA的值在安裝初始化過程中被設(shè)置為'DATA'。如果你改變該變量的值來指向一個腳本創(chuàng)建組件組,你必須在調(diào)用ComponentTransferData, CreateShellObjects, 或 CreateRegistrySet前將值修改回'DATA'。注意運行一個基于事件的腳本的安裝中,ComponentTransferData被自動調(diào)用。
參數(shù):
szTitle
指定對話框標(biāo)題。為顯示缺省標(biāo)題("選擇組件") ,給該參數(shù)傳遞一個空字符串("")。
szMsg1
指定顯示在對話框的消息。該靜態(tài)區(qū)的ID是801。為顯示該對話框的缺省指示,給該參數(shù)傳遞一個空字符串("")。
szMsg2
指定在對話框顯示的一個二次消息。該靜態(tài)區(qū)的ID是802。
SzId
指定一個候選數(shù)值型對話框ID。僅使用以字符串形式表示的數(shù)值型ID(例如,ID 13001 為"13001")。你可以拷貝SdAskOptions對話框資源,對它做有限的修改,給它一個唯一數(shù)值型ID,并通過以字符串傳遞它的ID給szId來調(diào)用對話框。參考下面的注解部分。為創(chuàng)建標(biāo)準(zhǔn)的四選項的SdAskOptions對話框,給該參數(shù)傳遞一個空字符串("")。
szComponents
指定要顯示的包含子部件的組件名稱。子部件前面有復(fù)選框或單選鈕。為顯示所有頂層組件,給該參數(shù)傳遞一個空字符串("")。
SdAskOptions在由系統(tǒng)變量MEDIA指定的文件媒體庫或腳本創(chuàng)建組件組中查找所需組件。
nExclusiveFlag
指定你要在對話框中顯示的按鈕類型。在該參數(shù)位置傳遞下列預(yù)定義常量之一:
EXCLUSIVE:指定單選鈕。
NONEXCLUSIVE:指定復(fù)選框。
如果你的安裝包括必需的可見的組件,不要調(diào)用SdAskOptions來得到安裝選項。而是,以非靜止方式調(diào)用ComponentDialog, SdComponentDialog, SdComponentDialogAdv, SdComponentMult 或SdAskOptionsList。
必需組件可以這么理解:當(dāng)活動組件(在組件窗格中被選擇的組件)被安裝時,你要添加組件到必須被安裝的組件列表中或從該組件列表中刪除組件。
其中控件有:
所需組件(列表框):列出活動組件要求的組件。
組件(列表框):列出所有定義的組件。活動組件有一個復(fù)選標(biāo)記;所需組件有一個紅圈和斜杠。
添加(按扭):將在組件列表框中選定的組件添加到所需組件列表框中。
刪除(按扭):從所需列表框中刪除選定的組件。
返回值:
NEXT (1):表明單擊了Next按鈕。
BACK (12):表明單擊了Back按鈕。
注解:
·你可以通過使用資源編輯器拷貝SdAskOptions對話框資源(位于_isres.dll),對拷貝作有限的修改,并給它一個唯一ID來創(chuàng)建多個SdAskOptions類型的對話框。當(dāng)你調(diào)用SdAskOptions并在參數(shù)szId傳遞對話框的自定義拷貝時,自定義拷貝被顯示。限制對存在的靜態(tài)文本區(qū)作編輯修改和增加靜態(tài)文本區(qū)。不建議添加需要處理程序的控件,因為它需要改變SdAskOptions的資源腳本。
5.4? SdAskOptionsList
語法:SdAskOptionsList (szTitle, szMsg, szComponents, nStyle);
說明:SdAskOptionsList函數(shù)創(chuàng)建一個對話框,顯示一個自定義安裝的組件列表。
SdAskOptionsList運行在由系統(tǒng)變量MEDIA指定的當(dāng)前媒體上。在安裝的初始化中,InstallShield給MEDIA賦缺省媒體名("DATA"),它和你的文件媒體庫(Data1.cab)相聯(lián)系。為顯示腳本創(chuàng)建的組件,按4.6中的相同步驟進(jìn)行。
系統(tǒng)變量MEDIA的值在安裝初始化過程中被設(shè)置為'DATA'。如果你改變該變量的值來指向一個腳本創(chuàng)建組件組,你必須在調(diào)用ComponentTransferData, CreateShellObjects, 或 CreateRegistrySet前將值修改回'DATA'。注意運行一個基于事件的腳本的安裝中,ComponentTransferData被自動調(diào)用。
如果你的安裝不使用一個安裝類型對話框,你必須在調(diào)用SdAskOptionsList前調(diào)用ComponentSetupTypeSet來指定一個已經(jīng)在IDE安裝類型窗格中定義的安裝類型。
參數(shù):
szTitle
指定對話框標(biāo)題。為顯示缺省標(biāo)題("選擇組件") ,給該參數(shù)傳遞一個空字符串("")。
szMsg
指定對話框中顯示的消息。為顯示該對話框的缺省指示,給該參數(shù)傳遞一個空字符串("")。
szComponents
指定要顯示的包含子部件的組件名稱。為顯示所有頂層組件,給該參數(shù)傳遞一個空字符串。
SdAskOptionsList在由系統(tǒng)變量MEDIA指定的文件媒體庫或腳本創(chuàng)建組件組中查找所需的組件。
nStyle
指定最終用戶的選擇是否受限。在該參數(shù)位置傳遞下列預(yù)定義常量之一:
EXCLUSIVE:允許最終用戶僅從列表中選擇一個項目。如果任何szComponents'的子部件是所需組件,則不使用EXCLUSIVE模式。
NONEXCLUSIVE:允許最終用戶從列表中選擇多個項目,包括多個非鄰接的選項。兩個按鈕被顯示:Select All 和Clear All,,允許通過單擊一個按鈕選擇所有選項或清除所有選項。
返回值:
NEXT (1):表明單擊了Next按鈕。
BACK (12):表明單擊了Back按鈕。
5.5? SdBitmap
語法:SdBitmap (szTitle, szMsg, szBitmap);
說明:SdBitmap函數(shù)在一個對話框中顯示一個位圖。位圖所允許的最大大小是寬440個像素點、高275個像素點。僅當(dāng)你使用一個資源編輯器來修改SdBitmap對話框資源使得顯示消息的控件成為可見時,你才可以在SdBitmap對話框中顯示一個消息,查看下面注解。
參數(shù):
szTitle
指定對話框標(biāo)題。為顯示缺省標(biāo)題("歡迎") ,給該參數(shù)傳遞一個空字符串("")。
szMsg
給該參數(shù)傳遞一個空字符串(""),除非你使用一個資源編輯器修改SdBitmap對話框來顯示一個消息,查看下面注解。
szBitmap
指定要顯示的位圖的文件名和一組位圖屬性(可選)。如果包括位圖屬性,傳遞給該參數(shù)的字符串必須如下格式化:
?"位圖文件名;透明標(biāo)志'3-D標(biāo)志;背景顏色"
位圖文件名
指定位圖文件名。如果文件名未限定(也就是說,如果它不包括一個驅(qū)動器指示符和路徑),InstallShield在SUPPORTDIR查找該位圖。
透明標(biāo)志
指示是否透明顯示位圖。當(dāng)該標(biāo)志是1(真)時,該位圖所有紫紅色(RGB值:255,0,255)部分都透明顯示。該參數(shù)的缺省值是0(非透明)。
3-D 標(biāo)志
指示是否要繞著包含位圖的靜態(tài)區(qū)的邊緣增加一個3-D邊框。缺省為0(非3D邊框)。
背景色
指示作為靜態(tài)文本區(qū)背景的顏色。 注意該顏色僅當(dāng)位圖小于它所顯示在的靜態(tài)文本區(qū)或透明標(biāo)志設(shè)置為1并且位圖有透明區(qū)域時才會可見。背景色必須以RGB值表示,也就是三個由逗號分隔的數(shù)值型的值。
下面的例子將從MyBitmap.bmp文件顯示位圖,它位于SUPPORTDIR文件夾。該位圖將被置于一個黑色背景上。它有一個3-D邊框。該位圖的任何紫紅色的部分將被顯示為背景色-黑色。
??? "MyBitmap.bmp;1;1;0,0,0"
返回值:
NEXT (1):表明單擊了Next按鈕。
BACK (12):表明單擊了Back按鈕。
注解:
·你可以使用一個資源編輯器來修改SdBitmap對話框資源,使得一個傳遞給參數(shù)szMsg的消息字符串在SdBitmap對話框中顯示。
·SdBitmap 對話框資源包括在_isres.dll中。該資源包含一個靜態(tài)文本控件,它接收由參數(shù)szMsg傳遞的字符串。然而,該靜態(tài)文本控件缺省為在SdBitmap對話框中不可查看(在對話框下)。SdBitmap也使用一個靜態(tài)文本控件顯示位圖圖象。你可以調(diào)整位圖圖象靜態(tài)文本控件的大小和移動消息靜態(tài)文本控件進(jìn)入對話框來查看。
改變位圖圖象靜態(tài)文本控制的大小可能影響你位圖圖象的顯示。位圖圖象必須足夠小來避免當(dāng)它被SdBitmap在位圖圖象靜態(tài)文本控制置中時被剪切掉。
·該函數(shù)不支持透明位圖。如果你以該函數(shù)來使用一個透明位圖,透明部分將被正常顯示。
·SdBitmap不支持圖元文件。
5.6? SdComponentDialog
語法:SdComponentDialog (szTitle, szMsg, svDir, szComponents);
說明:使用SdComponentDialog函數(shù)創(chuàng)建一個對話框。顯示當(dāng)前媒體上用戶可以安裝的的組件列表和每個組件將占用的磁盤空間。該函數(shù)和SdComponentDialogAdv相同。
??? 目標(biāo)目錄可以使用Browse按鈕來修改;在其它驅(qū)動器上的可用磁盤空間可以使用Disk Space 按鈕來檢查。
SdComponentDialogt運行在由系統(tǒng)變量MEDIA指定的當(dāng)前媒體上。在安裝的初始化中,InstallShield給MEDIA賦缺省媒體名("DATA"),它和你的文件媒體庫(Data1.cab)相聯(lián)系。為顯示腳本創(chuàng)建的組件,按4.6中的相同步驟進(jìn)行。
??? 如果你的安裝不使用一個安裝類型的對話框,你必須在調(diào)用SdComponentDialog之前調(diào)用ComponentSetupTypeSet來指定一個已經(jīng)在IDE安裝類型窗格中定義的安裝類型。
??? 系統(tǒng)變量MEDIA的值在安裝初始化過程中被設(shè)置為'DATA'。如果你改變該變量的值來指向一個腳本創(chuàng)建組件組,你必須在調(diào)用ComponentTransferData, CreateShellObjects, 或 CreateRegistrySet前將值修改回'DATA'。注意運行一個基于事件的腳本的安裝中,ComponentTransferData被自動調(diào)用。
參數(shù):
szTitle
指定對話框標(biāo)題。為顯示缺省標(biāo)題("選擇組件") ,給該參數(shù)傳遞一個空字符串("")。
szMsg
指定對話框中顯示的消息。為顯示該對話框的缺省指示,給該參數(shù)傳遞一個空字符串("")。
svDir
指定缺省選定的文件夾名;返回最終用戶選擇的文件夾名。注意由svDir指定的目標(biāo)文件夾不會自動賦給TARGETDIR或其它任何系統(tǒng)變量。如果它要被使用,為將svDir值提供給安裝,你必須將它賦給TARGETDIR或一個腳本定義的變量。
??? 我們建議用戶給該參數(shù)傳遞TARGETDIR而不是一個字符串變量。如果你在該參數(shù)不傳遞TARGETDIR,當(dāng)最終用戶在一個不同驅(qū)動器選擇一個目標(biāo)時顯示在對話框的所需磁盤空間不會被重算。
szComponents
指定其子部件要被顯示的組件名稱。為顯示所有主組件,給該參數(shù)傳遞一個空字符串("")。
SdComponentDialog在由系統(tǒng)變量MEDIA指定的文件媒體庫或腳本創(chuàng)建組件組中查找所需的組件。
返回值:
NEXT (1):表明單擊了Next按鈕。
BACK (12):表明單擊了Back按鈕。
注解:
·一個組件在被選定前,其大小都顯示為0。一旦它已經(jīng)被選定,它的實際大小被顯示。
·若有必要,組件名被截尾來允許顯示最大可能的組件大小。顯示大小的必要空間依賴于最大組件大小本身(2GB)、當(dāng)前使用的組件大小選項、和用來在對話框顯示組件信息的字體。組件大小選項由DialogSetInfo函數(shù)設(shè)置。
·一旦顯示最大可能大小所需的空間被確定,若有必要,所有組件名均自動被截尾以適應(yīng)剩余空間。這確保組件名不會覆蓋組件大小。
·注意在這種方法下需要較少空間顯示大小(或沒有被選)的組件的名稱仍然會被截尾。為了最大化執(zhí)行并確保組件名完整顯示,使組件名小于在組件對話中的有效空間。
·如果由svDir指定的缺省文件夾不存在于最終用戶系統(tǒng),除非最終用戶按下Browse按鈕并按下列步驟從選擇文件夾對話框創(chuàng)建它,否則它不會被創(chuàng)建。因此,無論何時用戶想在調(diào)用ComponentTransferData(必要時,它會創(chuàng)建文件夾)前指定一個要使用的缺省文件夾,為了確定該文件夾是否存在,當(dāng)SdComponentDialog返回時都必須調(diào)用ExistDir 。如果不存在,調(diào)用CreatDir在最終用戶系統(tǒng)上創(chuàng)建它。
·運行在靜止方式(silent mode )的安裝,如果在調(diào)用SdComponentDialog前文件夾不存在,必須創(chuàng)建該新文件夾。這樣可以確保確認(rèn)對話框不被顯示。沒有這一步,需要兩個響應(yīng)文件來處理兩個可能情況。
·Disk Space按鈕的ID是101。該按鈕自動顯示有效磁盤空間對話框。如果愿意你可以刪除該按鈕/選項。目錄靜態(tài)區(qū)需要一個ID為851。列表框ID有一個多選項風(fēng)格。
5.7? SdComponentDialog2
語法:SdComponentDialog2 (szTitle, szMsg, szDir, szComponents);
說明:SdComponentDialog2函數(shù)創(chuàng)建一個對話框,顯示一個用戶可以安裝的當(dāng)前媒體上的組件列表。顯示在組件窗口中的組件可以有子部件。如果一個組件有子部件,Change按鈕將成為有效。單擊Change按鈕將生成選擇子部件對話框,可以作進(jìn)一步的選擇。對每個組件和子部件,也提供說明。當(dāng)用戶選擇或高亮顯示組件時,其說明顯示在對話框的說明區(qū)下。
??? SdComponentDialog2運行在由系統(tǒng)變量MEDIA指定的當(dāng)前媒體上。在安裝的初始化中,InstallShield給MEDIA賦缺省媒體名("DATA"),它和你的文件媒體庫(Data1.cab)相聯(lián)系。為顯示腳本創(chuàng)建的組件,按4.6中的相同步驟進(jìn)行。
??? 如果你的安裝不使用一個安裝類型的對話框,你必須在調(diào)用SdComponentDialog之前調(diào)用ComponentSetupTypeSet來指定一個已經(jīng)在IDE安裝類型窗格中定義的安裝類型。
??? 系統(tǒng)變量MEDIA的值在安裝初始化過程中被設(shè)置為'DATA'。如果你改變該變量的值來指向一個腳本創(chuàng)建組件組,你必須在調(diào)用ComponentTransferData, CreateShellObjects, 或 CreateRegistrySet前將值修改回'DATA'。注意運行一個基于事件的腳本的安裝中,ComponentTransferData被自動調(diào)用。
參數(shù):
szTitle
指定對話框標(biāo)題。為顯示缺省標(biāo)題("選擇組件") ,給該參數(shù)傳遞一個空字符串("")
szMsg
指定對話框中顯示的消息。為顯示該對話框的缺省指示,給該參數(shù)傳遞一個空字符串("")。
szDir
指定目標(biāo)目錄的名稱(目標(biāo)位置)。注意由svDir指定的目標(biāo)文件夾不會自動賦給TARGETDIR或其它任何系統(tǒng)變量。如果它要被使用,為將svDir值提供給安裝,你必須將它賦給TARGETDIR或一個腳本定義的變量。
szComponents
指定其子部件要被顯示的組件名稱。為顯示所有主組件,給該參數(shù)傳遞一個空字符串("")。
??? SdComponentDialog2在由系統(tǒng)變量MEDIA指定的文件媒體庫或腳本創(chuàng)建組件組中查找所需的組件。
返回值:
NEXT (1):表明單擊了Next按鈕。
BACK (12):表明單擊了Back按鈕。
注解:
·一個組件在被選定前,其大小都顯示為0。一旦它已經(jīng)被選定,它的實際大小被顯示。
·若有必要,組件名稱被截尾來允許顯示最大可能的組件大小。顯示大小的必要空間依賴于最大組件大小本身(2GB),當(dāng)前使用的組件大小選項,和用來在對話框顯示組件信息的字體。組件大小選項由DialogSetInfo函數(shù)設(shè)置。
·一旦顯示最大可能大小所需的空間被確定,若有必要,所有組件名均自動被截尾以適應(yīng)剩余空間。這確保組件名不會覆蓋組件大小。
·注意在這種方法下需要較少空間顯示大小(或沒有被選)的組件的名稱仍然會被截尾。為了最大化執(zhí)行并確保組件名完整顯示,使組件名小于在組件對話框中的有效空間。
·當(dāng)且僅當(dāng)被選定的組件有任何子部件時Change按鈕才為有效。否則,它將變灰。
·如果一個組件被撤消選定,它的子部件也必須缺省為撤消選定。同樣的,如果一個組件的所有子部件缺省為撤消選定,則父組件也必須缺省為撤消選定。有關(guān)組件和子部件的缺省選定設(shè)置請參考ComponentAddItem函數(shù)。
·當(dāng)用戶選定一個顯示在對話框中的組件或子部件時,缺省選定設(shè)置被清除。如果用戶撤消選定一個組件,所有它的子部件也將被撤消選定。如果用戶撤消選定一個組件的所有子部件,該組件也將被撤消選定。
5.8? SdComponentDialogAdv
語法:SdComponentDialogAdv (szTitle, szMsg, svDir, szComponents);
說明:使用SdComponentDialogAdv函數(shù)創(chuàng)建一個對話框。顯示當(dāng)前媒體上用戶可以安裝的組件列表和每個組件將占用的磁盤空間。該函數(shù)和SdComponentDialog相同。
??? 目標(biāo)目錄可以使用Browse按鈕來修改:同時在其它驅(qū)動器上的可用磁盤空間可以使用Disk Space 按鈕來檢查。
SdComponentDialogtAdv運行在由系統(tǒng)變量MEDIA指定的當(dāng)前媒體上。在安裝的初始化中,InstallShield給MEDIA賦缺省媒體名("DATA"),它和你的文件媒體庫(Data1.cab)相聯(lián)系。為顯示腳本創(chuàng)建的組件,按4.6中的相同步驟進(jìn)行。
如果你的安裝不使用一個安裝類型的對話框,你必須在調(diào)用SdComponentDialog之前調(diào)用ComponentSetupTypeSet來指定一個已經(jīng)在IDE安裝類型窗格中定義的安裝類型。
??? 系統(tǒng)變量MEDIA的值在安裝初始化過程中被設(shè)置為'DATA'。如果你改變該變量的值來指向一個腳本創(chuàng)建組件組,你必須在調(diào)用ComponentTransferData, CreateShellObjects, 或 CreateRegistrySet.前將值修改回'DATA'。注意運行一個基于事件的腳本的安裝中,ComponentTransferData被自動調(diào)用。
參數(shù):
szTitle
指定對話框標(biāo)題。為顯示缺省標(biāo)題("選擇組件") ,給該參數(shù)傳遞一個空字符串("")。
szMsg
指定對話框中顯示的消息。為顯示該對話框的缺省指示,給該參數(shù)傳遞一個空字符串("")。
svDir
指定缺省選定的文件夾名;返回最終用戶選擇的文件夾名。注意由svDir指定的目標(biāo)文件夾不會自動賦給TARGETDIR或其它任何系統(tǒng)變量。如果它要被使用,為將svDir值提供給安裝,你必須將它賦給TARGETDIR或一個腳本定義的變量。
??? 我們建議用戶給該參數(shù)傳遞TARGETDIR而不是一個字符串變量。如果你在該參數(shù)不傳遞TARGETDIR,當(dāng)最終用戶在一個不同驅(qū)動器選擇一個目標(biāo)時顯示在對話框的所需磁盤空間不會被重算。
szComponents
指定其子部件要被顯示的組件名稱。為顯示所有主組件,給該參數(shù)傳遞一個空字符串("")。
SdComponentDialogAdv在由系統(tǒng)變量MEDIA指定的文件媒體庫或腳本創(chuàng)建組件組中查找所需的組件。
返回值:
NEXT (1):表明單擊了Next按鈕。
BACK (12):表明單擊了Back按鈕。
注解:
請參閱5.7。
5.9? SdComponentMult
語法:SdComponentMult (szTitle, szMsg, szTargetDir, szComponents);
說明:SdComponentMult函數(shù)創(chuàng)建一個對話框,提供給最終用戶一個選項來從當(dāng)前媒體上的一個組件和子部件列表中選擇。對話框有兩個子窗口。如果被選定的組件有子部件,它們在第二個窗口中顯示。對話框也顯示所需的磁盤空間(依賴于被選定的組件和子部件)和目標(biāo)目錄的空閑磁盤空間來在安裝過程中提供幫助。組件和/或子部件的說明可以通過單擊它的名稱在說明區(qū)中查看。
有關(guān)組件和子部件的詳細(xì)情況請參閱7.1。
參數(shù):
szTitle
指定對話框標(biāo)題。為顯示缺省標(biāo)題("選擇組件") ,給該參數(shù)傳遞一個空字符串("")
szMsg
指定對話框中顯示的消息。為顯示該對話框的缺省指示,給該參數(shù)傳遞一個空字符串("")。
szTargetDir
指定將應(yīng)用程序安裝到的目標(biāo)文件夾名。注意由svTargetDir指定的目標(biāo)文件夾不會自動賦給TARGETDIR或其它任何系統(tǒng)變量。如果它要被使用,為將svTargetDir值提供給安裝,你必須將它賦給TARGETDIR或一個腳本定義的變量。
szComponents
指定其子部件要被顯示的組件名稱。為顯示所有主組件,給該參數(shù)傳遞一個空字符串("")。
SdComponentMult在由系統(tǒng)變量MEDIA指定的文件媒體庫或腳本創(chuàng)建組件組中查找所需的組件。
??? 太長不能適應(yīng)選擇窗口的組件名將被從右截尾以適應(yīng)有效空間。
返回值:
NEXT (1):表明單擊了Next按鈕。
BACK (12):表明單擊了Back按鈕。
注解:
請參閱5.7。
5.10? SdComponentTree
語法:SdComponentTree (szTitle, szMsg, szDir, szComponents, nLevel);
說明:SdComponentTree函數(shù)顯示一個對話框,它包含下列內(nèi)容:
一個樹形控件,最終用戶可以在其中選定在他們系統(tǒng)上需要的組件和不選定在他們系統(tǒng)上不需要的組件。
選定組件的說明(組件屬性說明文本)。
需要用來執(zhí)行樹形控件中指定的文件操作的磁盤空間,和由szDir指定路徑的磁盤的有效空間。(所需磁盤空間的計算考慮在szDir指定的磁盤的簇的大小。)
SdComponentTree運行在由系統(tǒng)變量MEDIA指定的當(dāng)前媒體上。在安裝的初始化中,InstallShield給MEDIA賦缺省媒體名("DATA"),它和你的文件媒體庫(Data1.cab)相聯(lián)系。為顯示腳本創(chuàng)建的組件,按4.6中的相同步驟進(jìn)行。
參數(shù):
szTitle
指定對話框標(biāo)題。為顯示缺省標(biāo)題("選擇組件") ,給該參數(shù)傳遞一個空字符串("")。
szMsg
指定對話框中顯示的消息。為顯示該對話框的缺省指示,給該參數(shù)傳遞一個空字符串("")。szDir
指定在計算所需和有效磁盤空間中用到的磁盤的路徑。
szComponents
指定其子部件要被顯示的組件名稱。為顯示所有主組件,給該參數(shù)傳遞一個空字符串("")。
nLevel
指定當(dāng)對話框第一次被顯示時在樹形控件中打開多少層組件和子部件。(例如,nLevel為2,則對話框首次顯示時,第三和更低層的子部件在樹形控件中被關(guān)閉。)
返回值:
NEXT (1):表明單擊了Next按鈕。
BACK (12):表明單擊了Back按鈕。
5.11? SdConfirmNewDir
語法:SdConfirmNewDir (szTitle, szDir, nReserved);
說明:SdConfirmNewDie函數(shù)創(chuàng)建一個對話框,顯示一個文件夾名和一個確認(rèn)的提示。如果最終用戶單擊Yes按鈕,則一個新文件夾自動由該函數(shù)創(chuàng)建。
參數(shù):
szTitle
指定對話框標(biāo)題。為顯示缺省標(biāo)題("確認(rèn)新文件夾") ,給該參數(shù)傳遞一個空字符串("")。
szDir
指定要確認(rèn)的目錄名稱。(通過調(diào)用SdAskDestPath來得到該信息)
nReserved
給該參數(shù)傳遞0。不允許其它值。
返回值:
YES (1):表明單擊了Yes按鈕并且目錄已經(jīng)被確認(rèn)并將被創(chuàng)建。
NO (0):表明單擊了No按鈕,并且指定的目錄不會被創(chuàng)建。
<0:表明Yes被選定了但函數(shù)未能創(chuàng)建新目錄。
5.12? SdConfirmRegistration
語法:SdConfirmRegistration (szTitle, szName, szCompany, szSerial, nReserved);
說明:SdConfirmRegistration函數(shù)創(chuàng)建一個對話框,顯示用戶名、公司名稱和序列號。如果在該對話框的任何區(qū)域輸入一個空字符串(""),顯示的區(qū)域?qū)榭铡?br />參數(shù):
szTitle
指定對話框標(biāo)題。為顯示缺省標(biāo)題("注冊認(rèn)可") ,給該參數(shù)傳遞一個空字符串("")。
szName
指定最終用戶姓名。
szCompany
指定公司名稱。
szSerial
指定序列號。如果該參數(shù)包含一個空字符串(""),序列號區(qū)不在對話框顯示。
nReserved
給該參數(shù)傳遞0。不允許其它值。
返回值:
YES (1):表明單擊Yes按鈕。
NO (0):表明單擊No按鈕。
注解:
·為得到序列號和最終用戶的姓名和公司名,調(diào)用SdRegisterUserEx。只要得到姓名和公司名,調(diào)用SdRegisterUser。
5.13? SdDisplayTopics
語法:SdDisplayTopics (szTitle, szMsg, listTopics, listDetails, nReserved);
說明:SdDisplayTopics 函數(shù)創(chuàng)建一個對話框,顯示基于主題數(shù)據(jù)(資料)的信息。對話框提供一個標(biāo)題然后是標(biāo)題的主題和說明。你可以修改說明文本的字體風(fēng)格以讓它和標(biāo)題(主題)文本想?yún)^(qū)別。消息和主題標(biāo)題通常是粗體。可使用該對話框顯示幫助主題、例子等。
參數(shù):
szTitle
指定對話框標(biāo)題。為顯示缺省標(biāo)題("自定義安裝幫助") ,給該參數(shù)傳遞一個空字符串("")。
szMsg
指定對話框中顯示的消息。為顯示該對話框的缺省指示,給該參數(shù)傳遞一個空字符串("")。
listTopics
指定要顯示的包含主題的字符串列表。
listDetails
指定包含每個主題的說明的字符串列表。
nReserved
給該參數(shù)傳遞0。不允許其它值。
返回值:
NEXT (1):表明單擊了Next按鈕。
BACK (12):表明單擊了Back按鈕。
注解:
·消息靜態(tài)區(qū)必須以801為ID。主題標(biāo)識符ID必須在802-849的范圍之內(nèi)。說明區(qū)ID必須在851-899的范圍之內(nèi)。
·靜態(tài)說明區(qū)的空間由對話框的大小固定。你不能動態(tài)改變listDetails列表的空間。如果主題和說明的數(shù)目小于靜態(tài)區(qū)的數(shù)目,在空白區(qū)不顯示任何內(nèi)容,但對話框大小不會改變。
5.14? SdExceptions
語法:SdExceptions (nExceptionType, szFilename);
說明:SdExceptions函數(shù)顯示一個對話框,通知最終用戶遇到一個共享,鎖定(在使用中)或只讀的文件并提供適當(dāng)?shù)倪x項。
參數(shù):
nExceptionType
指定遇到文件問題的類型。在該參數(shù)位置傳遞下列預(yù)定義常量之一:
SHARED:一個共享的文件,其引用計數(shù)器已經(jīng)減為0。
READONLY:遇到一個只讀文件。
LOCKED:遇到一個鎖定文件。
szFilename
指定遇到問題的文件名。
返回值:
ERR_RETRY (4):表明選定了Retry按鈕。
ERR_IGNORE (5):表明選定了Ignore按鈕。
ERR_YES (6):表明選定了Yes按鈕。
ERR_NO (7):表明選定了No按鈕。
ERR_PERFORM_AFTER_REBOOT (100):表明選定了Reboot按鈕。
<0:表明對話框不能被顯示。
5.15? SdFinish
語法:SdFinish (szTitle, szMsg1, szMsg2, szOpt1, szOpt2, bvOpt1, bvOpt2);
說明:SdFinish函數(shù)顯示一個對話框,通知最終用戶安裝已完成并給用戶信息或選擇。SdFinish對話框顯示兩個消息和兩個復(fù)選框選擇選項。例如,你可能想要提供給用戶查看README文件或運行應(yīng)用程序的選擇。
??? 為在消息中或復(fù)選框說明中插入產(chǎn)品名稱,在szMsg1, szMsg2, szOpt1, 和szOpt2傳遞的字符串中使用位置夾%P。
參數(shù):
szTitle
指定對話框標(biāo)題。為顯示缺省標(biāo)題("安裝完成") ,給該參數(shù)傳遞一個空字符串("")。
szMsg1
指定在對話框頂端顯示的消息。為顯示通知用戶安裝完成的缺省指示,給該參數(shù)傳遞一個空字符串("")。
szMsg2
指定在對話框底部顯示的消息。為顯示缺省指示("單擊Finish按鈕完成安裝"),給該參數(shù)傳遞一個空字符串("")。
szOpt1
指定顯示在第一個復(fù)選框旁邊的文本。給該參數(shù)傳遞一個空字符串("")來隱藏復(fù)選框。
szOpt2
指定顯示在第二個復(fù)選框旁邊的文本。給該參數(shù)傳遞一個空字符串("")來隱藏復(fù)選框。
bvOpt1
返回第一個復(fù)選框的選擇狀態(tài)(TRUE或FALSE)。
bvOpt2
返回第二個復(fù)選框的選擇狀態(tài)(TRUE或FALSE)。
返回值:
NEXT (1):表明單擊了Finish按鈕。
注解:
·SdFinish沒有選項來終止安裝和重啟最終用戶的計算機。當(dāng)SdFinish返回時,安裝繼續(xù)執(zhí)行。當(dāng)有必要提供給用戶重啟的選項時,可用調(diào)用SdFinishReboot來代替。
·因為SdFinish被設(shè)計為宣告安裝結(jié)束,所以Back按鈕被禁用。
5.16? SdFinishEx
語法:SdFinishEx (szTitle, szMsg1, szMsg2, szOpt1, szOpt2, bvOpt1, bvOpt2);
說明:SdFinishEx函數(shù)調(diào)用SdFinish或SdFinishReboot來顯示一個對話框,通知最終用戶安裝已完成并給用戶信息或選擇。如果系統(tǒng)變量BATCH_INSTALL等于FALSE(表明安裝過程中沒有遇到鎖定文件),SdFinishEx調(diào)用SdFinish來顯示對話框。如果BATCH_INSTALL等于TRUE,SdFinishEx調(diào)用SdFinishReboot來顯示對話框。
??? 為在消息中或復(fù)選框說明中插入產(chǎn)品名稱,在szMsg1, szMsg2, szOpt1, 和szOpt2傳遞的字符串中使用位置夾%P。
參數(shù):
參數(shù)和SdFinish的相同。如果BATCH_INSTALL等于TRUE,這些參數(shù)被忽略并調(diào)用 SdFinishReboot("","",SYS_BOOTMACHINE,"",0)。
返回值:
0:表明調(diào)用了SdFinish。
NEXT (1):表明調(diào)用SdFinishReboot并且最終用戶不重啟計算機。
<0:表明調(diào)用SdFinishReboot并且最終用戶選擇重啟計算機,但重啟失敗。
5.17? SdFinishReboot
語法:SdFinishReboot (szTitle, szMsg1, nDefOption, szMsg2, nReserved);
說明:SdFinishReboot函數(shù)在你的安裝結(jié)尾宣告安裝完成并提供給用戶重啟系統(tǒng)的選項。重啟系統(tǒng)允許修改Autoexec.bat,Config.sys和一些.ini文件使其起作用。
??? SdFinishReboot對話框在靜態(tài)文本區(qū)中顯示兩個消息。用參數(shù)szMsg1和szMsg2來設(shè)置這些區(qū)域的值。為在消息中或復(fù)選框說明中插入產(chǎn)品名稱,在szMsg1和szMsg2傳遞的字符串中使用位置夾%P。
參數(shù):
szTitle
指定對話框標(biāo)題。為顯示缺省標(biāo)題("安裝完成") ,給該參數(shù)傳遞一個空字符串("")。
szMsg1
指定在對話框頂端顯示的消息。為顯示通知用戶安裝完成的缺省指示,給該參數(shù)傳遞一個空字符串("")。
nDefOption
指定一個缺省單選按鈕選項選擇。在該參數(shù)位置傳遞下列預(yù)定義常量之一:
SYS_BOOTMACHINE:安裝結(jié)束時重啟計算機。
0:不重啟計算機。.
szMsg2
指定顯示在對話框底部的文本,提供用戶要做什么的信息。為顯示缺省指示,傳遞一個空字符串("")。
nReserved
給該參數(shù)傳遞0。不允許其它值。
返回值:
WILL_REBOOT:表明用戶選擇重啟系統(tǒng)。
NEXT (1):表明用戶沒有選擇重啟系統(tǒng)或Windows。
<0:表明用戶選擇重啟系統(tǒng)或Windows,但重啟失敗。
注解:
·因為當(dāng)其它InstallShield實例運行時,InstallShield將盡力不重啟計算機,所以你必須在允許SdFinishReboot重啟Windows或系統(tǒng)前關(guān)閉所有其它InstallShield實例。另外,你給用戶的消息必須要求他們以后若要重啟系統(tǒng),則他們必須確保首先關(guān)閉所有其它的應(yīng)用程序。
·InstallShield自動確保鎖定的.dll和.exe文件在下一次系統(tǒng)啟動時將被更新。
·因為SdFinishReboot被設(shè)計為宣告安裝結(jié)束,所以Back按鈕被禁用。
5.18? SdInit
語法:SdInit ( );
說明:SdInit函數(shù)準(zhǔn)備一個調(diào)用Sd對話框函數(shù)的安裝:裝入所需的資源字符串,還原最小化的InstallShield窗口,并指定在Sd對話框中Windows 95風(fēng)格的復(fù)選框。
參數(shù):
該函數(shù)沒有參數(shù)。
返回值:
0:表明安裝為調(diào)用Sd對話框函數(shù)作好初始化。
1:表明為調(diào)用Sd對話框函數(shù),安裝已經(jīng)被初始化。
注解:
·該函數(shù)由每個Sd函數(shù)自動調(diào)用。沒有必要顯式調(diào)用SdInit,除非你的腳本在調(diào)用任何Sd對話框函數(shù)前調(diào)用了DialogSetInfo。這種情況下,你的腳本必須在調(diào)用DialogSetInfo前調(diào)用SdInit;否則對DialogSetInfo的調(diào)用不起任何作用。
5.19? SdLicense
語法:SdLicense (szTitle, szMsg, szQuestion, szLicenseFile);
說明:SdLicense函數(shù)顯示一個對話框,包含一個在多行編輯區(qū)的許可證協(xié)議。許可證協(xié)議保存在一個由參數(shù)szLicenseFile指定的文本文件中。
??? 用戶可以上下滾動來閱讀協(xié)議,然后必須選擇Yes、No或Enable、Back按鈕。因為這可能是你將顯示的第一個對話框,你可能要禁止Back按鈕。如果用戶選擇了Yes,安裝將繼續(xù)。如果用戶選擇了No,InstallShield將顯示退出安裝對話框。
參數(shù):
szTitle
指定對話框標(biāo)題。為顯示缺省標(biāo)題("軟件許可證協(xié)議") ,給該參數(shù)傳遞一個空字符串("")。
szMsg
指定顯示在多行編輯區(qū)上方的靜態(tài)文本區(qū)中的消息。為顯示缺省指示,傳遞一個空字符串。
szQuestion
指定顯示在多行編輯區(qū)下方的靜態(tài)文本區(qū)中的文本。你可能在這兒放置一個問題,用戶必須選擇Yes 或 No來響應(yīng)它。為顯示缺省指示,給該參數(shù)傳遞一個空字符串("")。
szLicenseFile
指定包含許可證協(xié)議的文本文件名。該文件必須被加到安裝文件窗格中適當(dāng)語言文件夾中。
返回值:
YES (1):表明用戶選擇了Yes按鈕。
BACK (12):表明用戶選擇了Back按鈕。
注解:
·該函數(shù)不能返回NO,因為,如果用戶選擇了No按鈕,將顯示退出安裝對話框。
·你也可以通過輸入全限定名,在引號中,或一個Universal Naming Convention (UNC)路徑來指定szLicenseFile。
·在szLicenseFile中的文本在超過1024個字符的一行后必須包含硬回車。該文件的文本必須以1024字節(jié)為間隔讀入字符串列表。如果從szLicenseFile的文本不包含硬回車,單詞會在SdLicense對話框中意外地回繞。
5.20? SdLoadString
語法:SdLoadString (nID);
說明:SdLoadString函數(shù)返回與指定的資源ID相聯(lián)系的字符串值。安裝引擎首先在_isuser.dll(如果該文件存在)中查找資源;如果資源沒有找到,安裝引擎在_isres.all中查找。
參數(shù):
nID
指定一個在_isuser.dll或 _isres.dll中的字符串資源的標(biāo)識符。一些nID的有效值可以在InstallShield? Professional? 文件夾的 Script\Ifx\Include 的子文件夾的 Ifx.h文件中找到。
返回值:
非空字符串值
SdLoadString成功檢索到字符串值。
空字符串值("")
表明SdLoadString失敗。
5.21? SdMakeName
語法:SdMakeName (svSection, szDlg, szUnused, nvDlgName);
說明:SdMakeName函數(shù)為一個自定義對話框創(chuàng)建一個節(jié)名。該節(jié)名在寫到一個.iss文件或從中讀出時被使用,由InstallShiled Silent使用。
參數(shù):
svSection
指定節(jié)名(InstallShield使用變量szDlg和 nvDlgName來給該變量置一個值)。該值由SilentReadData和 SilentWriteData.使用。
szDlg
指定自定義對話框的名稱。
szUnused
該參數(shù)不使用,給它傳遞一個空字符串("")。
nvDlgName
指定記錄SdMakeName被由szDlg命名的對話框調(diào)用的次數(shù)的計數(shù)器。InstallShield自動增加該計數(shù)器。為每個自定義對話框使用一個唯一的變量名。(可參閱下面的注解)
返回值:? 無。
注解:
·為使節(jié)被適當(dāng)命名,你必須在每個不同的自定義對話框的第四個參數(shù)使用一個唯一的變量名。做到這一點的簡單方法是在szDlg使用對話框名來命名該變量。例如,當(dāng)szDlg是"MyDlgOne",命名在第四個參數(shù)的變量為nvMyDlgOne;當(dāng)szDlg是"MyDlgTwo",命名該變量為nvMyDlgTwo。
5.22? SdOptionsButtons
語法:SdOptionsButtons (szTitle, szMsg, listButtons, listDescription);
說明:SdOptionsButtons函數(shù)顯示一個對話框,包含一到四個位圖按鈕和一個簡短的對每個按鈕的文本說明。
參數(shù):
szTitle
指定對話框標(biāo)題。為顯示缺省標(biāo)題("選擇組件") ,給該參數(shù)傳遞一個空字符串("")。
szMsg
指定顯示在對話框的消息。為顯示該對話框缺省指示("請選擇你要安裝的組件"),給該參數(shù)傳遞一個空字符串("")。
listButtons
指定一個包含一到四個元素的字符串列表。每個元素是一個格式化的指定顯示在按鈕上的位圖的字符串。一個按鈕將被用來顯示列表中的每個字符串元素。字符串列表元素必須有下列格式:
?"@<位圖ID>;<位圖圖標(biāo)標(biāo)志>;<透明顏色>"
由@符號開始字符串并后隨位圖ID。<位圖圖標(biāo)標(biāo)志>域是1(真)或0(假),表明位圖被顯示時在<透明顏色>域指定的顏色是否要透明顯示。<透明顏色>域指定一個RGB值,它是位圖的透明顏色。注意分號將ID和圖標(biāo)標(biāo)志、圖標(biāo)標(biāo)志和透明顏色分隔。
更多的信息可參閱下面的注解部分。
listDescription
指定一個包含一到四個字符串元素的字符串列表,每個相對應(yīng)于參數(shù)listButtons中的一個字符串。每個字符串是一個和它相應(yīng)按鈕一起顯示的文本說明。
返回值:
NEXT (1):表明單擊了NEXT按鈕。
BACK (12):表明單擊了Back按鈕。
101:對應(yīng)于listButtons中的第一個字符串元素的按鈕被選定。
102:對應(yīng)于listButtons中的第二個字符串元素的按鈕被選定。
103:對應(yīng)于listButtons中的第三個字符串元素的按鈕被選定。
104:對應(yīng)于listButtons中的第四個字符串元素的按鈕被選定。
注解:
·雖然SdOptionsButtons可以被使用為一個安裝類型對話框,但還是推薦使用SdSetupTypeEx對話框來允許最終用戶選擇一個安裝類型,因為它不需要任何用戶化。注意如果你調(diào)用SdOptionsButtons來得到最終用戶的安裝類型選擇,你必須然后調(diào)用ComponentButtons來為你的安裝建立選擇的安裝類型。
·InstallShield提供可以被該函數(shù)調(diào)用的四個_isres.dll中的缺省位圖。這些位圖有從12001到12004的ID和在腳本范例中相應(yīng)的典型、可移植、簡易和自定義安裝類型。
·如果你使用該對話框作其它用途或你想要使用_isres.dll中提供的類型之外的安裝類型,你必須將你自己的自定義按鈕加入到_isuser.dll對話框模板中并且然后在你的安裝中包含自定義的_isuser.dll。
·為防止用戶沒有單擊一個特定按鈕時就退出對話框,在你調(diào)用SdOptionsButtons前調(diào)用Disable函數(shù)來禁止Next按鈕。
5.23? SdProductName
語法:SdProductName (szProductName);
說明:SdProductName函數(shù)使得你的產(chǎn)品名對所有的%P位置夾都有效。%P位置夾在一些Sd對話框中的靜態(tài)文本區(qū)中找到。另外,一些Sd對話框函數(shù),如SdFinish,允許你在作為函數(shù)參數(shù)的字符串中包含%P。
參數(shù):
szProductName
指定被安裝的產(chǎn)品名。該名稱將取代在Sd對話框的適當(dāng)靜態(tài)區(qū)出現(xiàn)的任何產(chǎn)品名位置夾(%P)。
返回值:
該函數(shù)沒有返回值。
5.24? SdRegisterUser
語法:SdRegisterUser (szTitle, szMsg, svName, svCompany);
說明:SdRegisterUser函數(shù)創(chuàng)建一個對話框,檢索用戶姓名和公司名稱。如果svName和svCompany都包含空字符串,InstallShield將從注冊表中得到用戶姓名和公司名稱。
??? 僅當(dāng)兩個編輯區(qū)都存在數(shù)據(jù)時Next按鈕才被激活。如果InstallShield可以從系統(tǒng)查找缺省姓名和公司名稱,Next按鈕被自動激活。完成時,SdRegisteruser調(diào)用RegDBSetDefaultRoot來將注冊表開關(guān)鍵設(shè)置給HKEY_CLASSES_ROOT。
參數(shù):
szTitle
指定對話框標(biāo)題。為顯示缺省標(biāo)題("用戶信息") ,給該參數(shù)傳遞一個空字符串("")。
szMsg
指定顯示在對話框的消息。該文本被看作為一個靜態(tài)控制。為顯示該對話框缺省指示,給該參數(shù)傳遞一個空字符串("")。
svName
返回由用戶輸入的姓名。注意SdRegisterUser顯示該參數(shù)的初始值由用戶進(jìn)行編輯。如果svName和svCompany都是空字符串,在目標(biāo)系統(tǒng)注冊表中被找到的用戶姓名將被顯示來進(jìn)行編輯。
svCompany
返回由用戶輸入的公司名稱。注意SdRegisterUser顯示該參數(shù)的初始值由用戶進(jìn)行編輯。如果svName和svCompany都是空字符串,在目標(biāo)系統(tǒng)注冊表中被找到的公司名稱將被顯示來進(jìn)行編輯。
返回值:
NEXT (1):表明單擊了NEXT按鈕。
BACK (12):表明單擊了Back按鈕。
5.25? SdRegisterUserEx
語法:SdRegisterUserEx (szTitle, szMsg, svName, svCompany, svSerial);
說明:SdRegisterUserEx函數(shù)創(chuàng)建一個對話框,檢索用戶姓名、公司名稱和序列號。如果svName和svCompany都包含空字符串,InstallShield將從注冊表得到用戶姓名和公司名稱。
??? 僅當(dāng)三個編輯區(qū)都存在數(shù)據(jù)時Next按鈕才被激活。你不能讓任何區(qū)域空白。
完成時,SdRegisteruser調(diào)用RegDBSetDefaultRoot來將注冊表開關(guān)鍵設(shè)置給HKEY_CLASSES_ROOT。
參數(shù):
szTitle
指定對話框標(biāo)題。為顯示缺省標(biāo)題("用戶信息") ,給該參數(shù)傳遞一個空字符串("")。
szMsg
指定顯示在對話框的消息。該文本被看作為一個靜態(tài)控件。為顯示該對話框缺省指示,給該參數(shù)傳遞一個空字符串("")。
svName
返回由用戶輸入的姓名。注意SdRegisterUserEx顯示該參數(shù)的初始值由用戶進(jìn)行編輯。如果svName和svCompany都是空字符串,在目標(biāo)系統(tǒng)注冊表中被找到的用戶姓名將被顯示來進(jìn)行編輯。
svCompany
返回由用戶輸入的公司名稱。注意SdRegisterUserEx顯示該參數(shù)的初始值由用戶進(jìn)行編輯。如果svName和svCompany都是空字符串,在目標(biāo)系統(tǒng)注冊表中被找到的公司名稱將被顯示來進(jìn)行編輯。
svSerial
返回用戶輸入的序列號。你可以使用該信息并把它寫入一個文件或者把它顯示在一個確認(rèn)對話框中。
返回值:
NEXT (1):表明單擊了NEXT按鈕。
BACK (12):表明單擊了Back按鈕。
5.26? SdSelectFolder
語法:SdSelectFolder (szTitle, szMsg, svDefGroup);
說明:SdSelectFolder函數(shù)顯示供選擇的程序文件夾。SdSelectFolder允許你提供一個缺省選擇。用戶也可以輸入一個新的文件夾名。SdSelectFolder將僅返回被選擇的或輸入的文件夾名。它不能創(chuàng)建文件夾。
參數(shù):
szTitle
指定對話框標(biāo)題。為顯示缺省標(biāo)題("選擇程序文件夾") ,給該參數(shù)傳遞一個空字符串("")。
szMsg
指定顯示在對話框的消息。該文本被看作為一個靜態(tài)控件。為顯示該對話框缺省指示,給該參數(shù)傳遞一個空字符串("")。
svDefGroup
返回被選文件夾的名稱。
返回值:
NEXT (1):表明單擊了NEXT按鈕。
BACK (12):表明單擊了Back按鈕。
注解:
·運行在Windows NT下的一個安裝中,如果在調(diào)用SdSelectFolder前調(diào)用ProgDefGroup,由SdSelectFolder顯示的程序文件夾(公用或?qū)S茫⒁蕾囉趥鬟f給ProgDefGroupType的參數(shù)。
5.27? SdSetupType
語法:SdSetupType (szTitle, szMsg, svDir, nReserved);
說明:SdSetupType函數(shù)顯示一個對話框允許最終用戶選擇三種標(biāo)準(zhǔn)安裝類型之一:典型、簡易或自定義。這些安裝選項顯示時有標(biāo)準(zhǔn)描述文本。如果你想加入其它安裝類型或改變顯示的安裝類型名或描述,調(diào)用SdSetupTypeEx來替代。
??? 對話框也顯示一個缺省的目標(biāo)路徑。一個Browse按鈕裝入一個對話框,允許最終用戶通過輸入一個新文件夾名或從一個列表中選擇存在的文件夾來修改目標(biāo)路徑。如果最終用戶輸入一個不存在的文件夾名,將顯示一個消息框來詢問是否要創(chuàng)建該文件夾。如果最終用戶單擊Yes,該函數(shù)自動創(chuàng)建指定文件夾。指定文件夾的全限定路徑在svDir返回。
如果最終用戶在使用組件對話框來選定和撤消選定與已選安裝類型相聯(lián)系的組件后,返回到安裝類型對話框,那么那些選擇將丟失。這種情況發(fā)生是因為SdSetupType函數(shù)每次被調(diào)用時自動根據(jù)選中的安裝類型復(fù)位缺省組件選項。
參數(shù):
szTitle
指定對話框標(biāo)題。為顯示缺省標(biāo)題("安裝類型") ,給該參數(shù)傳遞一個空字符串("")。
szMsg
指定顯示在對話框的消息。該文本被看作為一個靜態(tài)控件。為顯示該對話框缺省指示,給該參數(shù)傳遞一個空字符串("")。
svDir
指定一個缺省文件夾名。返回最終用戶所選的文件夾名。
nReserved
保留為將來使用。給該參數(shù)傳遞0。
返回值:
TYPICAL (301):表明用戶選擇典型安裝。
COMPACT (302):表明用戶選擇簡易安裝。
CUSTOM (303):表明用戶選擇自定義安裝。
BACK (12):表明單擊Back按鈕。
5.28? SdSetupTypeEx
語法:SdSetupTypeEx (szTitle, szMsg, szReserved, svSetupType, nReserved);
說明:SdSetupTypeEx函數(shù)顯示一個對話框,當(dāng)你指定除典型、簡易和自定義之外的安裝類型時,允許最終用戶選擇安裝類型。
參數(shù):
szTitle
指定對話框標(biāo)題。為顯示缺省標(biāo)題("安裝類型") ,給該參數(shù)傳遞一個空字符串("")。
szMsg
指定顯示在對話框的消息。為顯示該對話框缺省指示,給該參數(shù)傳遞一個空字符串("")。
szReserved
給該參數(shù)傳遞一個空字符串("")。不允許其它值。
svSetupType
指定一個缺省安裝類型和返回由最終用戶選擇的安裝類型。為使在列表中的第一次安裝為缺省選擇,給該參數(shù)傳遞一個空字符串("")。在該參數(shù)返回的字符串將和在IDE中指定的安裝類型名相匹配。
nReserved
給該參數(shù)傳遞0。不允許其它值。
返回值:
0:表明SdSetupTypeEx成功。
BACK (12):表明單擊了Back按鈕。
5.29? SdShowAnyDialog
語法:SdShowAnyDialog (szTitle, szID, nID, nReserved);
說明:SdShowAnyDialog函數(shù)顯示一個自定義或改進(jìn)型對話框。該函數(shù)僅推薦給高級用戶使用。
參數(shù):
szTitle
指定對話框標(biāo)題。為顯示缺省標(biāo)題("歡迎") ,給該參數(shù)傳遞一個空字符串("")。
szID
指定標(biāo)識對話框的標(biāo)識符字符串。如果該參數(shù)包含一個空字符串(""),SdShowAnyDialog使用nID的值。
nID
指定標(biāo)識對話框的數(shù)值型值。如果szID包含一個空字符串(""),該參數(shù)被忽略。
nReserved
給該參數(shù)傳遞0。不允許其它值。
返回值:
NEXT (1):表明單擊了Next按鈕。
BACK (12):表明單擊了Back按鈕。
注解:
·為了使用SdShowAnyDialog函數(shù),你必須知道你希望顯示的_isres.dll中的改進(jìn)型對話框或_isuser.dll中的自定義對話框的ID。
·如果對話框只有靜態(tài)控件,你不需要修改SdShowAnyDialog腳本文件。但如果你的對話框有其它控件,為了處理用戶的反饋,你必須修改Sdsadlg.rul文件,位于你的InstallShield程序文件夾中的Script/Srt文件夾,
5.30? SdShowDlgEdit1
語法:SdShowDlgEdit1 (szTitle, szMsg, szField1, svEdit1);
說明:SdShowDlgEdit1函數(shù)創(chuàng)建一個通用對話框,顯示一個消息和一個單行編輯區(qū)。你可以為該對話框指定一個標(biāo)題。
參數(shù):
szTitle
指定對話框標(biāo)題。為顯示缺省標(biāo)題("編輯數(shù)據(jù)") ,給該參數(shù)傳遞一個空字符串("")。
szMsg
指定顯示在對話框的消息。為在該消息包含由先前調(diào)用SdProductName設(shè)置的產(chǎn)品名稱,在該消息的任何地方插入位置夾%P。當(dāng)消息被顯示時,%P由產(chǎn)品名稱代替。
szField1
指定顯示在編輯區(qū)左邊的域名。缺省的域名是"域1:";為顯示缺省名稱,給該參數(shù)傳遞一個空字符串("")。可以被顯示的字符數(shù)最大約為10。實際的最大值依賴于域名中每個字符的組合寬度。如果域名超出有效空間,則當(dāng)對話框被顯示時它將從右被截尾。
svEdit1
指定編輯區(qū)的初始值;當(dāng)對話框被關(guān)閉時,返回編輯區(qū)的值。
返回值:
NEXT (1):表明單擊了Next按鈕。
BACK (12):表明單擊了Back按鈕。
5.31? SdShowDlgEdit2
語法:SdShowDlgEdit2 (szTitle, szMsg, szField1, szField2, svEdit1, svEdit2);
說明:SdShowDlgEdit2函數(shù)創(chuàng)建一個通用對話框,顯示一個消息和兩個單行編輯區(qū)。你可以為該對話框指定一個標(biāo)題。
參數(shù):
szTitle
指定對話框標(biāo)題。為顯示缺省標(biāo)題("編輯數(shù)據(jù)") ,給該參數(shù)傳遞一個空字符串("")。
szMsg
指定顯示在對話框的消息。為在該消息包含由先前調(diào)用SdProductName設(shè)置的產(chǎn)品名稱,在該消息的任何地方插入位置夾%P。當(dāng)消息被顯示時,%P由產(chǎn)品名稱代替。
szField1
指定顯示在第一個編輯區(qū)左邊的域名。缺省的域名是"域1:";為顯示缺省名稱,給該參數(shù)傳遞一個空字符串("")。可以被顯示的字符數(shù)最大約為10。實際的最大值依賴于域名中每個字符的組合寬度。如果域名超出有效空間,則當(dāng)對話框被顯示時它將從右被截尾。
szField2
為第二個編輯區(qū)指定域名。缺省為"域2:"。
svEdit1
指定第一個編輯區(qū)的初始值;當(dāng)對話框被關(guān)閉時,返回第一個編輯區(qū)的值。
svEdit2
指定第二個編輯區(qū)的初始值;當(dāng)對話框被關(guān)閉時,返回第二個編輯區(qū)的值。
返回值:
NEXT (1):表明單擊了Next按鈕。
BACK (12):表明單擊了Back按鈕。
5.32? SdShowDlgEdit3
語法:SdShowDlgEdit3 (szTitle, szMsg, szField1, szField2, szField3, svEdit1, svEdit2, svEdit3);
說明:SdShowDlgEdit2函數(shù)創(chuàng)建一個通用對話框,顯示一個消息和三個單行編輯區(qū)。你可以為該對話框指定一個標(biāo)題。
參數(shù):
szTitle
指定對話框標(biāo)題。為顯示缺省標(biāo)題("編輯數(shù)據(jù)") ,給該參數(shù)傳遞一個空字符串("")。
szMsg
指定顯示在對話框的消息。為在該消息包含由先前調(diào)用SdProductName設(shè)置的產(chǎn)品名稱,在該消息的任何地方插入位置夾%P。當(dāng)消息被顯示時,%P由產(chǎn)品名稱代替。
szField1
指定顯示在第一個編輯區(qū)左邊的域名。缺省的域名是"域1:";為顯示缺省名稱,給該參數(shù)傳遞一個空字符串("")。可以被顯示的字符數(shù)最大約為10。實際的最大值依賴于域名中每個字符的組合寬度。如果域名超出有效空間,則當(dāng)對話框被顯示時它將從右被截尾。
szField2
為第二個編輯區(qū)指定域名。缺省為"域2:"。
szField3
為第二個編輯區(qū)指定域名。缺省為"域2:"。
svEdit1
指定第一個編輯區(qū)的初始值;當(dāng)對話框被關(guān)閉時,返回第一個編輯區(qū)的值。
svEdit2
指定第二個編輯區(qū)的初始值;當(dāng)對話框被關(guān)閉時,返回第二個編輯區(qū)的值。
svEdit3
指定第三個編輯區(qū)的初始值;當(dāng)對話框被關(guān)閉時,返回第三個編輯區(qū)的值。
返回值:
NEXT (1):表明單擊了Next按鈕。
BACK (12):表明單擊了Back按鈕。
5.33? SdShowFileMods
語法:SdShowFileMods (szTitle, szMsg, szTargetFile, szAltFile, listChanges, nvSelection);
說明:SdShowFileMods函數(shù)創(chuàng)建一個對話框,顯示你想要對一個文件進(jìn)行的修改。下面這些選擇是有效的:
修改目標(biāo)文件。
修改替代文件,它是目標(biāo)文件的拷貝,但非聯(lián)合修改。
不作任何修改。SdShowFileMods不對文件作修改。你必須使用適當(dāng)?shù)奈募瘮?shù)把那些修改寫入你的腳本。
參數(shù):
szTitle
指定對話框標(biāo)題。為顯示缺省標(biāo)題("修改文件") ,給該參數(shù)傳遞一個空字符串("")。
szMsg
指定顯示在對話框的消息。為顯示該對話框的缺省指示,給該參數(shù)傳遞一個空字符串("")。
szTargetFile
指定要修改的文件名。它將和第一個單選按鈕一起顯示。
szAltFile
如果最終用戶決定要作修改,指定該文件的替代名。這將和第二個單選按鈕一起顯示。為使用sztargetFile指定的擴展名為.bak的文件名,給該參數(shù)傳遞一個空字符串("")。
listChanges
指定字符串列表名,它包含對文件所作修改的列表。該列表位于一個多行編輯區(qū),允許最終用戶選擇要實現(xiàn)的修改。
nvSelection
返回最終用戶選擇的按鈕的ID:
101: "讓安裝修改<szTargetFile>文件。"
102: "保存對<szAltFile>所要求的修改。"
103: "不作任何修改。"
返回值:
NEXT (1):表明單擊了Next按鈕。
BACK (12):表明單擊了Back按鈕。
5.34? SdShowInfoList
語法:SdShowInfoList (szTitle, szMsg, listID);
說明:SdShowInfoList函數(shù)創(chuàng)建一個對話框,顯示一個可滾動的消息列表。
參數(shù):
szTitle
指定對話框標(biāo)題。為顯示缺省標(biāo)題("信息") ,給該參數(shù)傳遞一個空字符串("")。
szMsg
指定顯示在信息框上方一行的消息。如果消息長于一行,將被從右截尾。如果消息包含一個換行符(\n),換行符后的文本不被顯示。為顯示缺省消息("Text"),給該參數(shù)傳遞一個空字符串("")。
listID
指定顯示在對話框的消息列表。所有顯示在對話框的消息為只讀。
返回值:
NEXT (1):表明單擊了Next按鈕。
BACK (12):表明單擊了Back按鈕。
注解:
·多行編輯區(qū)必須為只讀。
·SdShowInfoList可以顯示大約多達(dá)57200個字符的列表。
5.35? SdShowMsg
語法:SdShowMsg (szMsg, bShow);
說明:SdShowMsg函數(shù)打開或關(guān)閉一個小的非模態(tài)窗口,顯示由szMsg指定的消息。當(dāng)bShow為TRUE,窗口被打開,消息顯示在窗口中,并且繼續(xù)腳本中下一個語句的處理。注意SdShowMsg窗口被置于安裝窗口的中央。當(dāng)bShow為FALSE時,szMsg被忽略并且關(guān)閉SdShowMsg窗口。
參數(shù):
szMsg
指定顯示在窗口的消息。為顯示缺省消息("安裝正查找已安裝的組件"),給該參數(shù)傳遞一個空字符串("")。當(dāng)bShow為FALSE時該參數(shù)被忽略。
bShow
指定是否要打開或關(guān)閉窗口。在該參數(shù)位置傳遞下列預(yù)定義常量之一:
TRUE:如果窗口沒有打開則打開它。
FALSE:如果窗口打開了則關(guān)閉它。
返回值:
返回值總為0。
注解:
·SdShowMsg函數(shù)提供了一個簡單方法使得腳本進(jìn)程繼續(xù)的同時,可以將一個顯示豐富資料的消息保留在屏幕上。
·當(dāng)SdShowMsg窗口是打開的,隨后的對SdShowMsg(第二個參數(shù)為TRUE)的調(diào)用被忽略。為改變消息,你必須首先以第二個參數(shù)為FALSE調(diào)用SdShowMsg來關(guān)閉窗口,然后以第二個參數(shù)為TRUE,szMsg為新的消息再次調(diào)用SdShowMsg。
·SdShowMsg窗口水平調(diào)整大小來在一行上顯示szMsg的值。如果消息的長度超過窗口的最大寬度,消息被截尾以適應(yīng)窗口。
·SdShowMsg被設(shè)計為單行顯示消息。不要在szMag中嵌入換行符(\n)。
5.36 SdStartCopy
語法:SdStartCopy (szTitle, szMsg, listData);
說明:SdStartCopy函數(shù)創(chuàng)建一個多行編輯區(qū),顯示安裝過程中所作的設(shè)置和選擇。為按需改變設(shè)置,用戶可以單擊對話框的Back按鈕來返回到以前的對話框。在檢索用戶的選擇后,開始文件傳輸處理之前調(diào)用SdStartCopy。
??? 使用一個字符串列表來收集安裝過程中得到的信息。然后你可以將該字符串列表傳遞給SdStartCopy的參數(shù)listData。SdStartCopy將顯示該列表并允許用戶在繼續(xù)文件傳輸處理之前確認(rèn)這些信息是正確的。
參數(shù):
szTitle
指定對話框標(biāo)題。為顯示缺省標(biāo)題("開始拷貝文件") ,給該參數(shù)傳遞一個空字符串("")。
szMsg
指定顯示在多行編輯區(qū)上方的靜態(tài)文本區(qū)的消息。為顯示該對話框的缺省指示,給該參數(shù)傳遞一個空字符串("")。
listData
指定從最終用戶檢索得的信息字符串列表。SdStartCopy會自動將每個元素放置到多行編輯區(qū)。如果列表為空,該多行編輯區(qū)將被隱藏并且只有靜態(tài)文本區(qū)為可見。
返回值:
NEXT (1):表明用戶選定了Next按鈕。
BACK (12):表明用戶選定了Back按鈕。
5.37? SdWelcome
語法:SdWelcome (szTitle, szMsg);
說明:SdWelcome函數(shù)顯示一個對話框,歡迎最終用戶。
參數(shù):
szTitle
指定顯示在對話框標(biāo)題部分的文本。為顯示缺省標(biāo)題("歡迎") ,給該參數(shù)傳遞一個空字符串("")。
szMsg
指定顯示在歡迎對話框中的消息。為在該消息中包含先前調(diào)用SdProductName而設(shè)置的產(chǎn)品名稱,在該消息的任意位置插入一個位置夾%P。當(dāng)該消息被顯示時,%P被產(chǎn)品名稱代替。為顯示缺省歡迎消息("歡迎進(jìn)入%P安裝程序。該程序?qū)⒃谀愕挠嬎銠C上安裝%P"),給該參數(shù)傳遞一個空字符串("")。
返回值:
NEXT (1):表明單擊了Next按鈕。
5.38? SdWelcomeMaint
語法:SdWelcomeMaint (szTitle, szMsg, nType);
說明:SdWelcomeMaint函數(shù)顯示一個對話框 ,在一個維護(hù)型安裝(也就是,一個已經(jīng)被運行的安裝的重運行)的開始時使用。該對話框包含修改、修復(fù)、刪除選項按鈕。
參數(shù):
szTitle
指定對話框標(biāo)題。為顯示缺省標(biāo)題("歡迎") ,給該參數(shù)傳遞一個空字符串("")。
szMsg
指定顯示在對話框的消息。為顯示該對話框的缺省指示,給該參數(shù)傳遞一個空字符串("")。
nType
指定哪個選項按鈕為缺省選擇。你必須在該參數(shù)位置傳遞下列預(yù)定義常量之一,使在對話框中正確顯示:
MODIFY:修改按鈕為缺省選擇。
REPAIR:修復(fù)按鈕為缺省選擇。
REMOVEALL:刪除按鈕為缺省選擇。
返回值:
MODIFY (301):表明當(dāng)單擊Next按鈕后修改按鈕被選定。
REPAIR (302):表明當(dāng)單擊Next按鈕后修復(fù)按鈕被選定。
REMOVEALL (303):表明當(dāng)單擊Next按鈕后刪除按鈕被選定。