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