InstallShield内部库函数全集一(5-01)

InstallShield内部库函数全集一(5-01)

5.Sd对话框函数

    InstallShield提供一些Sd对话框函数,用户可自定义和显示。Sd对话框使用可以创建用户输入的对话框的特殊脚本定义函数来创建。然后该对话框根据所作选择返回值给脚本。
    Sd对话框有一个Cancel按钮,当它被选中时不返回一个CANCEL值。而是调用缺省的退出处理。
下面是所有有效的Sd对话框函数的列表:
DialogSetInfo
改变由一些内部对话框函数呈现的对话框的显示元素。
SdAskDestPath
呈现一个对话框,允许最终用户指定安装的一个目标位置。
SdAskOptions
创建一个对话框,它比标准AskOptions函数更灵活。
SdAskOptionsList
呈现一个对话框,允许最终用户选定和撤消选定一个列表中的项目。
SdBitmap
在对话框中显示一个位图。
SdComponentDialog
显示一个对话框,允许最终用户选择安装的组件和目标文件夹。
SdComponentDialog2
显示一个对话框,允许最终用户选择要安装的文件夹、组件和子部件。
SdComponentDialogAdv
显示一个对话框,允许最终用户选择安装的组件和目标文件夹。
SdComponentMult
显示一个对话框,允许最终用户选择安装的组件和子部件。有关磁盘空间的附加信息也被提供来确定安装的最佳位置。
SdComponentTree
显示一个有树形控制控件的对话框,允许最终用户选择安装的组件和子部件。有关磁盘空间的附加信息也被提供来确定安装的最佳位置。
SdConfirmNewDir
提示用户确认文件夹的选择。
SdConfirmRegistration
提示最终用户确认输入到由SdRegisterUser或SdRegisterUserEx呈现对话框中的信息。
SdDisplayTopics
显示主题列表。
SdExceptions
显示一个对话框,通知最终用户遇到一个共享、锁定(在使用中)或只读文件。
SdFinish
显示一个对话框,通知最终用户安装完成并提供一个选项的选择,如是否要查看信息文件或运行一个应用程序。
SdFinishEx
显示一个对话框,通知最终用户安装完成。
SdFinishReboot
显示一个对话框,通知用户安装完成并提供一个重启Windows 和计算机选项的选择。
SdInit
准备一个调用Sd对话框函数的安装。
SdLicense
显示一个许可证协议并给最终用户一个接受或拒绝许可证条款的选项。
SdLoadString
返回和一个指定资源ID相联系的字符串值。
SdMakeName
创建一个自定义对话框的节名。该节名在向一个 .iss文件写或从一个.iss文件读时使用。.iss文件由 InstallShield Silent使用。
SdOptionsButtons
显示一个有用户定义按钮的对话框,提供给最终用户不同选择。
SdProductName
在脚本对话框的特定静态区中插入你的产品名。
SdRegisterUser
显示一个可输入用户名和公司名的对话框。
SdRegisterUserEx
显示一个对话框,最终用户可在里面输入用户姓名、公司名称和应用程序序列号。
SdSelectFolder
呈现一个对话框,允许最终用户从程序文件夹列表中选择一个文件夹。
SdSetupType
显示一个对话框,使最终用户能选择三种标准安装类型之一:典型、简易或自定义。
SdSetupTypeEx
显示一个对话框,允许最终用户选择标准或自定义安装类型。
SdShowAnyDialog
显示一个资源DLL的通用对话框。当用SdShowAnyDialog函数显示一个对话框时你不能从最终用户接受任何输入。
SdShowDlgEdit1
显示一个对话框,它有一个单行的编辑区和其它静态控件。
SdShowDlgEdit2
显示一个对话框,有两个单行的编辑区和其它静态控件。
SdShowDlgEdit3
显示一个对话框,有三个单行的编辑区和其它静态控件。
SdShowFileMods
呈现一个对话框,预览对文件的可能修改并允许最终用户同意修改、拒绝修改或要求将修改写到一个文件中。
SdShowInfoList
在一个对话框中显示一个可滚动的消息列表。
SdShowMsg
在一个小窗口中显示一个消息。
SdStartCopy
呈现一个对话框,显示已经由最终用户指定的选项和设置。
SdWelcome
显示一个通用欢迎。
SdWelcomeMaint
显示一个在维护安装开始时使用的对话框。

5.1  DialogSetInfo
语法:DialogSetInfo (nInfoType, szInfoString, nParameter);
说明:DialogSetInfo函数修改下列在InstallShield对话框中显示的元件:
显示的图象;
得到最终用户选择的复选框的风格;
指示有效和所需磁盘空间值的精度。
    通过调用DialogSetInfo产生的修改对安装的剩余部分保持为有效或直到它们又被随后的对DialogSetInfo的调用修改。如果你的脚本在调用任何Sd对话框函数前调用DialogSetInfo,在 DialogSetInfo的调用前必须先调用SdInit。否则,对DialogSetInfo的调用无效。
参数:
nInfoType
指定要修改的显示特征。在该参数位置传递下列预定义的常量之一:
DLG_INFO_USEDECIMAL:缺省时,显示的指示组件大小、有效磁盘空间和所需磁盘空间的值被四舍五入到最近的KB或MB。下列对话框受该参数影响:ComponentDialog, SdComponentDialog, SdComponentDialog2, SdComponentDialogAdv 和SdComponentMult。
DLG_INFO_KUNITS:缺省时,显示的指示组件大小、有效磁盘空间和所需磁盘空间的值以KB为度量。传递该参数同时nParameter设置为FALSE时则以MB为度量显示这些值。下列对话框受该参数影响:SdComponentTree, ComponentDialog, SdComponentDialog, SdComponentDialog2, SdComponentDialogAdv 和SdComponentMult。
DLG_INFO_ALTIMAGE:指定一个显示在该对话框中的候选位图。如果nParameter设置为TRUE,szInfoString必须指定在该对话框显示的图象。该参数应用于所有在对话框右上角显示标准安装图象的InstallShield对话框(和图象显示在对话框左边一个大图象的右上角的Welcome, SdWelcome和SdFinish对话框)。更多的信息可查看下面参数nParameter处描述的“当nInfoType是.DLG_INFO_ALTIMAGE”。
    由SetDisplayEffect设置的显示效果不能应用到交替图象,通常它们显示时没有任何特殊效果.
DLG_INFO_CHECKSELECTION:指定选择方法将由nParameter传递的常量确定。注意SdComponentTree不支持改变复选框类型。
szInfoString
当DLG_INFO_ALTIMAGE传递给nInfoType时,该参数指定要显示的候选位图的文件名和一组位图属性(可选)。如果包括了位图属性,传递给该参数的字符串必须如下格式化:
 “位图文件名;透明标志;<未用>;<未用>;透明色”
位图文件名:
指定位图文件名。如果文件名未限定(也就是说,如果它不包括一个驱动器指示符和路径),InstallShield在SUPPORTDIR查找该位图。
透明标志:
指示是否透明显示位图。当该标志是1(真)时,该位图中所有其颜色是由szInfoString的透明色参数指定的RGB值的部分都透明显示。该参数缺省为0(非透明)。
未用:
格式行的这些部分都被忽略,但它们必须被包括。也就是说,格式行串必须包括四个分号,三个分号在透明标志和透明色之间。
透明色:
指示透明显示的颜色。透明色必须用一个RGB值来表示,也就是,三个数值型值由逗号分隔。如果没有指定值,即使透明标志设置为1,位图也不会被透明显示。
    下面的例子将显示MyBitmap.bmp文件的位图,它位于SUPPORTDIR文件夹。位图所有黑色部分(RGB值为0,0,0)将被透明显示。
“MyBitmap.bmp;1;;;0,0,0″
注意:标准位图为57×53。一个候选位图必须也约是这个大小。如果位图大于这个大小,它会在标题区中垂直置中,位图的右边将和对话框的右边对齐。(在Welcome, SdWelcome, 和 SdFinish对话框中,位图的右边将和它所呈现在的更大的位图的右边对齐)。位图左边将尽可能扩展到对话框左边。位图扩展在对话框标题区下的任何部分将被剪切掉。如果位图小于57×53,它将被正确显示,但它将不被调整大小或被扩展。
    当缺省位图被重新装入或nInfoType不是DLG_INFO_ALTIMAGE时该参数被忽略
nParameter
和nInfoType相联系一起来指定对话框特性。
当nInfoType是DLG_INFO_CHECKSELECTION时,传递下列预定义常量之一来指定复选框风格:
CHECKBOX:指定Windows 3.1风格的复选框。
CHECKBOX95:指定标准(Windows 95 风格)复选框。如果不调用DialogSetInfo,这是缺省的复选框风格。
CHECKLINE:指定复选行风格的复选框。
CHECKMARK:指定复选标记风格的复选框。
当nInfoType是DLG_INFO_ALTIMAGE,传递下列预定义常量之一来指定显示位图:
-1:指定对话框必须显示缺省位图。
TRUE:指定由szInfoString指示的位图必须在随后的对话框中使用,就如前面在szInfoString下描述的一样。
当nInfoType是DLG_INFO_KUNITS 或DLG_INFO_USEDECIMAL时,传递下列预定义常量之一来指定大小如何显示:
TRUE:指定大小按照nInfoType指示的显示。
FALSE:指定大小按照缺省风格显示。
返回值:
0  表明函数成功设置了指定的风格。
< 0  表明函数未能设置该风格。
注解:
?为预览调用DialogSetInfo的效果,运行InstallShield范例,改变对话框的属性(通过单击属性按钮),然后检验如SdComponentDialog2和 SdComponentMult的对话框的改变。
?每次你要改变一个对话框的细节方面时都必须调用DialogSetInfo。
你可以使用DLG_INFO_ALTIMAGE参数来激活16色、256色或真彩色(24位)的位图。注意当256色的位图在16色系统中显示或真彩色位图在256色系统中显示时会有颜色失真。建议你指定一与目标系统的颜色模式兼容的候选图象。

5.2  SdAskDestPath
语法:SdAskDestPath (szTitle, szMsg, svDir, nReserved);
说明:SdAskDestPath函数创建一个对话框,允许最终用户选择一个候选目标路径。当你单击对话框中的浏览按钮,SelectDir函数被调用来打开一个二次对话框使最终用户可以选择一个存在的文件夹或输入一个新的文件夹名。
参数:
szTitle
指定对话框标题。为显示缺省标题(“选择文件夹”) ,给该参数传递一个空字符串(””)。
szMsg
指定显示在对话框的文本。该文本被考虑为一个静态控件。在你的消息字符串中使用%P位置夹来插入已经由先前的一个对SdProductName的调用指定的产品名称(如果有)。为显示对话框的缺省指示,传递一个空字符串(“”)。
svDir
指定缺省选定的目录名。返回由最终用户选定的目录名。
nReserved
给该参数传递0。不允许其它值。
返回值:
NEXT (1):指定Next按钮被单击。
BACK (12):指定Back按钮被单击。
注解:
?运行在静止方式的安装程序必须创建在调用SdAskDestPath前不存在的新文件夹。这样可以确保确认对话框不被显示。没有这一步骤,则需要两个响应文件来处理两种可能情况。

5.3  SdAskOptions
语法:SdAskOptions (szTitle, szMsg1, szMsg2, szId, szComponents, nExclusiveFlag);
说明:SdAskOptions 函数创建一个对话框,提供安装选项。你可以使用复选框或单选钮作为选择按钮。显示在按钮旁边的信息从一组选项中检索得到。选项的缺省数目是4。必要时你可以增加或减去组中选项的数目。
    SdAskOptions运行于由系统变量MEDIA指定的当前媒体上。在安装的初始化中,InstallShield给MEDIA赋缺省媒体名(“DATA”),它和你的文件媒体库(Data1.cab)相联系。为显示脚本创建的组件,可按4.6中的相同步骤进行:
  如果你的安装不使用一个安装类型的对话框,你必须在调用SdAskOptions之前调用ComponentSetupTypeSet来指定一个已经在IDE安装类型窗格中定义的安装类型
  系统变量MEDIA的值在安装初始化过程中被设置为’DATA’。如果你改变该变量的值来指向一个脚本创建组件组,你必须在调用ComponentTransferData, CreateShellObjects, 或 CreateRegistrySet前将值修改回’DATA’。注意运行一个基于事件的脚本的安装中,ComponentTransferData被自动调用。
参数:
szTitle
指定对话框标题。为显示缺省标题(“选择组件”) ,给该参数传递一个空字符串(””)。
szMsg1
指定显示在对话框的消息。该静态区的ID是801。为显示该对话框的缺省指示,给该参数传递一个空字符串(“”)。
szMsg2
指定在对话框显示的一个二次消息。该静态区的ID是802。
SzId
指定一个候选数值型对话框ID。仅使用以字符串形式表示的数值型ID(例如,ID 13001 为“13001”)。你可以拷贝SdAskOptions对话框资源,对它做有限的修改,给它一个唯一数值型ID,并通过以字符串传递它的ID给szId来调用对话框。参考下面的注解部分。为创建标准的四选项的SdAskOptions对话框,给该参数传递一个空字符串(“”)。
szComponents
指定要显示的包含子部件的组件名称。子部件前面有复选框或单选钮。为显示所有顶层组件,给该参数传递一个空字符串(””)。
SdAskOptions在由系统变量MEDIA指定的文件媒体库或脚本创建组件组中查找所需组件。
nExclusiveFlag
指定你要在对话框中显示的按钮类型。在该参数位置传递下列预定义常量之一:
EXCLUSIVE:指定单选钮。
NONEXCLUSIVE:指定复选框。
  如果你的安装包括必需的可见的组件,不要调用SdAskOptions来得到安装选项。而是,以非静止方式调用ComponentDialog, SdComponentDialog, SdComponentDialogAdv, SdComponentMult 或SdAskOptionsList。
  必需组件可以这么理解:当活动组件(在组件窗格中被选择的组件)被安装时,你要添加组件到必须被安装的组件列表中或从该组件列表中删除组件。
其中控件有:
所需组件(列表框):列出活动组件要求的组件。
组件(列表框):列出所有定义的组件。活动组件有一个复选标记;所需组件有一个红圈和斜杠。
添加(按扭):将在组件列表框中选定的组件添加到所需组件列表框中。
删除(按扭):从所需列表框中删除选定的组件。
返回值:
NEXT (1):表明单击了Next按钮。
BACK (12):表明单击了Back按钮。
注解:
?你可以通过使用资源编辑器拷贝SdAskOptions对话框资源(位于_isres.dll),对拷贝作有限的修改,并给它一个唯一ID来创建多个SdAskOptions类型的对话框。当你调用SdAskOptions并在参数szId传递对话框的自定义拷贝时,自定义拷贝被显示。限制对存在的静态文本区作编辑修改和增加静态文本区。不建议添加需要处理程序的控件,因为它需要改变SdAskOptions的资源脚本。

5.4  SdAskOptionsList
语法:SdAskOptionsList (szTitle, szMsg, szComponents, nStyle);
说明:SdAskOptionsList函数创建一个对话框,显示一个自定义安装的组件列表。
SdAskOptionsList运行在由系统变量MEDIA指定的当前媒体上。在安装的初始化中,InstallShield给MEDIA赋缺省媒体名(“DATA”),它和你的文件媒体库(Data1.cab)相联系。为显示脚本创建的组件,按4.6中的相同步骤进行。
系统变量MEDIA的值在安装初始化过程中被设置为’DATA’。如果你改变该变量的值来指向一个脚本创建组件组,你必须在调用ComponentTransferData, CreateShellObjects, 或 CreateRegistrySet前将值修改回’DATA’。注意运行一个基于事件的脚本的安装中,ComponentTransferData被自动调用。
  如果你的安装不使用一个安装类型对话框,你必须在调用SdAskOptionsList前调用ComponentSetupTypeSet来指定一个已经在IDE安装类型窗格中定义的安装类型。
参数:
szTitle
指定对话框标题。为显示缺省标题(“选择组件”) ,给该参数传递一个空字符串(””)。
szMsg
指定对话框中显示的消息。为显示该对话框的缺省指示,给该参数传递一个空字符串(””)。
szComponents
指定要显示的包含子部件的组件名称。为显示所有顶层组件,给该参数传递一个空字符串。
SdAskOptionsList在由系统变量MEDIA指定的文件媒体库或脚本创建组件组中查找所需的组件。
nStyle
指定最终用户的选择是否受限。在该参数位置传递下列预定义常量之一:
EXCLUSIVE:允许最终用户仅从列表中选择一个项目。如果任何szComponents’的子部件是所需组件,则不使用EXCLUSIVE模式。
NONEXCLUSIVE:允许最终用户从列表中选择多个项目,包括多个非邻接的选项。两个按钮被显示:Select All 和Clear All,,允许通过单击一个按钮选择所有选项或清除所有选项。
返回值:
NEXT (1):表明单击了Next按钮。
BACK (12):表明单击了Back按钮。

5.5  SdBitmap
语法:SdBitmap (szTitle, szMsg, szBitmap);
说明:SdBitmap函数在一个对话框中显示一个位图。位图所允许的最大大小是宽440个像素点、高275个像素点。仅当你使用一个资源编辑器来修改SdBitmap对话框资源使得显示消息的控件成为可见时,你才可以在SdBitmap对话框中显示一个消息,查看下面注解。
参数:
szTitle
指定对话框标题。为显示缺省标题(“欢迎”) ,给该参数传递一个空字符串(””)。
szMsg
给该参数传递一个空字符串(“”),除非你使用一个资源编辑器修改SdBitmap对话框来显示一个消息,查看下面注解。
szBitmap
指定要显示的位图的文件名和一组位图属性(可选)。如果包括位图属性,传递给该参数的字符串必须如下格式化:
 “位图文件名;透明标志‘3-D标志;背景颜色”
位图文件名
指定位图文件名。如果文件名未限定(也就是说,如果它不包括一个驱动器指示符和路径),InstallShield在SUPPORTDIR查找该位图。
透明标志
指示是否透明显示位图。当该标志是1(真)时,该位图所有紫红色(RGB值:255,0,255)部分都透明显示。该参数的缺省值是0(非透明)。
3-D 标志
指示是否要绕着包含位图的静态区的边缘增加一个3-D边框。缺省为0(非3D边框)。
背景色
指示作为静态文本区背景的颜色。 注意该颜色仅当位图小于它所显示在的静态文本区或透明标志设置为1并且位图有透明区域时才会可见。背景色必须以RGB值表示,也就是三个由逗号分隔的数值型的值。
  下面的例子将从MyBitmap.bmp文件显示位图,它位于SUPPORTDIR文件夹。该位图将被置于一个黑色背景上。它有一个3-D边框。该位图的任何紫红色的部分将被显示为背景色-黑色。
    ”MyBitmap.bmp;1;1;0,0,0″
返回值:
NEXT (1):表明单击了Next按钮。
BACK (12):表明单击了Back按钮。
注解:
?你可以使用一个资源编辑器来修改SdBitmap对话框资源,使得一个传递给参数szMsg的消息字符串在SdBitmap对话框中显示。
?SdBitmap 对话框资源包括在_isres.dll中。该资源包含一个静态文本控件,它接收由参数szMsg传递的字符串。然而,该静态文本控件缺省为在SdBitmap对话框中不可查看(在对话框下)。SdBitmap也使用一个静态文本控件显示位图图象。你可以调整位图图象静态文本控件的大小和移动消息静态文本控件进入对话框来查看。
改变位图图象静态文本控制的大小可能影响你位图图象的显示。位图图象必须足够小来避免当它被SdBitmap在位图图象静态文本控制置中时被剪切掉。
?该函数不支持透明位图。如果你以该函数来使用一个透明位图,透明部分将被正常显示。
?SdBitmap不支持图元文件。

5.6  SdComponentDialog
语法:SdComponentDialog (szTitle, szMsg, svDir, szComponents);
说明:使用SdComponentDialog函数创建一个对话框。显示当前媒体上用户可以安装的的组件列表和每个组件将占用的磁盘空间。该函数和SdComponentDialogAdv相同。
    目标目录可以使用Browse按钮来修改;在其它驱动器上的可用磁盘空间可以使用Disk Space 按钮来检查。
SdComponentDialogt运行在由系统变量MEDIA指定的当前媒体上。在安装的初始化中,InstallShield给MEDIA赋缺省媒体名(“DATA”),它和你的文件媒体库(Data1.cab)相联系。为显示脚本创建的组件,按4.6中的相同步骤进行。
    如果你的安装不使用一个安装类型的对话框,你必须在调用SdComponentDialog之前调用ComponentSetupTypeSet来指定一个已经在IDE安装类型窗格中定义的安装类型。
    系统变量MEDIA的值在安装初始化过程中被设置为’DATA’。如果你改变该变量的值来指向一个脚本创建组件组,你必须在调用ComponentTransferData, CreateShellObjects, 或 CreateRegistrySet前将值修改回’DATA’。注意运行一个基于事件的脚本的安装中,ComponentTransferData被自动调用。
参数:
szTitle
指定对话框标题。为显示缺省标题(“选择组件”) ,给该参数传递一个空字符串(””)。
szMsg
指定对话框中显示的消息。为显示该对话框的缺省指示,给该参数传递一个空字符串(””)。
svDir
指定缺省选定的文件夹名;返回最终用户选择的文件夹名。注意由svDir指定的目标文件夹不会自动赋给TARGETDIR或其它任何系统变量。如果它要被使用,为将svDir值提供给安装,你必须将它赋给TARGETDIR或一个脚本定义的变量。
    我们建议用户给该参数传递TARGETDIR而不是一个字符串变量。如果你在该参数不传递TARGETDIR,当最终用户在一个不同驱动器选择一个目标时显示在对话框的所需磁盘空间不会被重算。
szComponents
指定其子部件要被显示的组件名称。为显示所有主组件,给该参数传递一个空字符串(“”)。
SdComponentDialog在由系统变量MEDIA指定的文件媒体库或脚本创建组件组中查找所需的组件。
返回值:
NEXT (1):表明单击了Next按钮。
BACK (12):表明单击了Back按钮。
注解:
?一个组件在被选定前,其大小都显示为0。一旦它已经被选定,它的实际大小被显示。
?若有必要,组件名被截尾来允许显示最大可能的组件大小。显示大小的必要空间依赖于最大组件大小本身(2GB)、当前使用的组件大小选项、和用来在对话框显示组件信息的字体。组件大小选项由DialogSetInfo函数设置。
?一旦显示最大可能大小所需的空间被确定,若有必要,所有组件名均自动被截尾以适应剩余空间。这确保组件名不会覆盖组件大小。
?注意在这种方法下需要较少空间显示大小(或没有被选)的组件的名称仍然会被截尾。为了最大化执行并确保组件名完整显示,使组件名小于在组件对话中的有效空间。
?如果由svDir指定的缺省文件夹不存在于最终用户系统,除非最终用户按下Browse按钮并按下列步骤从选择文件夹对话框创建它,否则它不会被创建。因此,无论何时用户想在调用ComponentTransferData(必要时,它会创建文件夹)前指定一个要使用的缺省文件夹,为了确定该文件夹是否存在,当SdComponentDialog返回时都必须调用ExistDir 。如果不存在,调用CreatDir在最终用户系统上创建它。
?运行在静止方式(silent mode )的安装,如果在调用SdComponentDialog前文件夹不存在,必须创建该新文件夹。这样可以确保确认对话框不被显示。没有这一步,需要两个响应文件来处理两个可能情况。
?Disk Space按钮的ID是101。该按钮自动显示有效磁盘空间对话框。如果愿意你可以删除该按钮/选项。目录静态区需要一个ID为851。列表框ID有一个多选项风格。

5.7  SdComponentDialog2
语法:SdComponentDialog2 (szTitle, szMsg, szDir, szComponents);
说明:SdComponentDialog2函数创建一个对话框,显示一个用户可以安装的当前媒体上的组件列表。显示在组件窗口中的组件可以有子部件。如果一个组件有子部件,Change按钮将成为有效。单击Change按钮将生成选择子部件对话框,可以作进一步的选择。对每个组件和子部件,也提供说明。当用户选择或高亮显示组件时,其说明显示在对话框的说明区下。
    SdComponentDialog2运行在由系统变量MEDIA指定的当前媒体上。在安装的初始化中,InstallShield给MEDIA赋缺省媒体名(“DATA”),它和你的文件媒体库(Data1.cab)相联系。为显示脚本创建的组件,按4.6中的相同步骤进行。
    如果你的安装不使用一个安装类型的对话框,你必须在调用SdComponentDialog之前调用ComponentSetupTypeSet来指定一个已经在IDE安装类型窗格中定义的安装类型。
    系统变量MEDIA的值在安装初始化过程中被设置为’DATA’。如果你改变该变量的值来指向一个脚本创建组件组,你必须在调用ComponentTransferData, CreateShellObjects, 或 CreateRegistrySet前将值修改回’DATA’。注意运行一个基于事件的脚本的安装中,ComponentTransferData被自动调用。
参数:
szTitle
指定对话框标题。为显示缺省标题(“选择组件”) ,给该参数传递一个空字符串(””)
szMsg
指定对话框中显示的消息。为显示该对话框的缺省指示,给该参数传递一个空字符串(””)。
szDir
指定目标目录的名称(目标位置)。注意由svDir指定的目标文件夹不会自动赋给TARGETDIR或其它任何系统变量。如果它要被使用,为将svDir值提供给安装,你必须将它赋给TARGETDIR或一个脚本定义的变量。
szComponents
指定其子部件要被显示的组件名称。为显示所有主组件,给该参数传递一个空字符串(“”)。
    SdComponentDialog2在由系统变量MEDIA指定的文件媒体库或脚本创建组件组中查找所需的组件。
返回值:
NEXT (1):表明单击了Next按钮。
BACK (12):表明单击了Back按钮。
注解:
?一个组件在被选定前,其大小都显示为0。一旦它已经被选定,它的实际大小被显示。 
?若有必要,组件名称被截尾来允许显示最大可能的组件大小。显示大小的必要空间依赖于最大组件大小本身(2GB),当前使用的组件大小选项,和用来在对话框显示组件信息的字体。组件大小选项由DialogSetInfo函数设置。
?一旦显示最大可能大小所需的空间被确定,若有必要,所有组件名均自动被截尾以适应剩余空间。这确保组件名不会覆盖组件大小。
?注意在这种方法下需要较少空间显示大小(或没有被选)的组件的名称仍然会被截尾。为了最大化执行并确保组件名完整显示,使组件名小于在组件对话框中的有效空间。
?当且仅当被选定的组件有任何子部件时Change按钮才为有效。否则,它将变灰。
?如果一个组件被撤消选定,它的子部件也必须缺省为撤消选定。同样的,如果一个组件的所有子部件缺省为撤消选定,则父组件也必须缺省为撤消选定。有关组件和子部件的缺省选定设置请参考ComponentAddItem函数。
?当用户选定一个显示在对话框中的组件或子部件时,缺省选定设置被清除。如果用户撤消选定一个组件,所有它的子部件也将被撤消选定。如果用户撤消选定一个组件的所有子部件,该组件也将被撤消选定。

5.8  SdComponentDialogAdv
语法:SdComponentDialogAdv (szTitle, szMsg, svDir, szComponents);
说明:使用SdComponentDialogAdv函数创建一个对话框。显示当前媒体上用户可以安装的组件列表和每个组件将占用的磁盘空间。该函数和SdComponentDialog相同。
    目标目录可以使用Browse按钮来修改:同时在其它驱动器上的可用磁盘空间可以使用Disk Space 按钮来检查。
SdComponentDialogtAdv运行在由系统变量MEDIA指定的当前媒体上。在安装的初始化中,InstallShield给MEDIA赋缺省媒体名(“DATA”),它和你的文件媒体库(Data1.cab)相联系。为显示脚本创建的组件,按4.6中的相同步骤进行。
  如果你的安装不使用一个安装类型的对话框,你必须在调用SdComponentDialog之前调用ComponentSetupTypeSet来指定一个已经在IDE安装类型窗格中定义的安装类型。
    系统变量MEDIA的值在安装初始化过程中被设置为’DATA’。如果你改变该变量的值来指向一个脚本创建组件组,你必须在调用ComponentTransferData, CreateShellObjects, 或 CreateRegistrySet.前将值修改回’DATA’。注意运行一个基于事件的脚本的安装中,ComponentTransferData被自动调用。
参数:
szTitle
指定对话框标题。为显示缺省标题(“选择组件”) ,给该参数传递一个空字符串(””)。
szMsg
指定对话框中显示的消息。为显示该对话框的缺省指示,给该参数传递一个空字符串(””)。
svDir
指定缺省选定的文件夹名;返回最终用户选择的文件夹名。注意由svDir指定的目标文件夹不会自动赋给TARGETDIR或其它任何系统变量。如果它要被使用,为将svDir值提供给安装,你必须将它赋给TARGETDIR或一个脚本定义的变量。
    我们建议用户给该参数传递TARGETDIR而不是一个字符串变量。如果你在该参数不传递TARGETDIR,当最终用户在一个不同驱动器选择一个目标时显示在对话框的所需磁盘空间不会被重算。
szComponents
指定其子部件要被显示的组件名称。为显示所有主组件,给该参数传递一个空字符串(“”)。
SdComponentDialogAdv在由系统变量MEDIA指定的文件媒体库或脚本创建组件组中查找所需的组件。
返回值:
NEXT (1):表明单击了Next按钮。
BACK (12):表明单击了Back按钮。
注解:
请参阅5.7。

5.9  SdComponentMult
语法:SdComponentMult (szTitle, szMsg, szTargetDir, szComponents);
说明:SdComponentMult函数创建一个对话框,提供给最终用户一个选项来从当前媒体上的一个组件和子部件列表中选择。对话框有两个子窗口。如果被选定的组件有子部件,它们在第二个窗口中显示。对话框也显示所需的磁盘空间(依赖于被选定的组件和子部件)和目标目录的空闲磁盘空间来在安装过程中提供帮助。组件和/或子部件的说明可以通过单击它的名称在说明区中查看。
有关组件和子部件的详细情况请参阅7.1。
参数:
szTitle
指定对话框标题。为显示缺省标题(“选择组件”) ,给该参数传递一个空字符串(””)
szMsg
指定对话框中显示的消息。为显示该对话框的缺省指示,给该参数传递一个空字符串(””)。
szTargetDir
指定将应用程序安装到的目标文件夹名。注意由svTargetDir指定的目标文件夹不会自动赋给TARGETDIR或其它任何系统变量。如果它要被使用,为将svTargetDir值提供给安装,你必须将它赋给TARGETDIR或一个脚本定义的变量。
szComponents
指定其子部件要被显示的组件名称。为显示所有主组件,给该参数传递一个空字符串(“”)。
SdComponentMult在由系统变量MEDIA指定的文件媒体库或脚本创建组件组中查找所需的组件。
    太长不能适应选择窗口的组件名将被从右截尾以适应有效空间。
返回值:
NEXT (1):表明单击了Next按钮。
BACK (12):表明单击了Back按钮。
注解:
请参阅5.7。

5.10  SdComponentTree
语法:SdComponentTree (szTitle, szMsg, szDir, szComponents, nLevel);
说明:SdComponentTree函数显示一个对话框,它包含下列内容:
一个树形控件,最终用户可以在其中选定在他们系统上需要的组件和不选定在他们系统上不需要的组件。
选定组件的说明(组件属性说明文本)。
需要用来执行树形控件中指定的文件操作的磁盘空间,和由szDir指定路径的磁盘的有效空间。(所需磁盘空间的计算考虑在szDir指定的磁盘的簇的大小。)
SdComponentTree运行在由系统变量MEDIA指定的当前媒体上。在安装的初始化中,InstallShield给MEDIA赋缺省媒体名(“DATA”),它和你的文件媒体库(Data1.cab)相联系。为显示脚本创建的组件,按4.6中的相同步骤进行。
参数:
szTitle
指定对话框标题。为显示缺省标题(“选择组件”) ,给该参数传递一个空字符串(””)。
szMsg
指定对话框中显示的消息。为显示该对话框的缺省指示,给该参数传递一个空字符串(””)。szDir
指定在计算所需和有效磁盘空间中用到的磁盘的路径。
szComponents
指定其子部件要被显示的组件名称。为显示所有主组件,给该参数传递一个空字符串(“”)。
nLevel
指定当对话框第一次被显示时在树形控件中打开多少层组件和子部件。(例如,nLevel为2,则对话框首次显示时,第三和更低层的子部件在树形控件中被关闭。)
返回值:
NEXT (1):表明单击了Next按钮。
BACK (12):表明单击了Back按钮。

5.11  SdConfirmNewDir
语法:SdConfirmNewDir (szTitle, szDir, nReserved);
说明:SdConfirmNewDie函数创建一个对话框,显示一个文件夹名和一个确认的提示。如果最终用户单击Yes按钮,则一个新文件夹自动由该函数创建。
参数:
szTitle
指定对话框标题。为显示缺省标题(“确认新文件夹”) ,给该参数传递一个空字符串(””)。
szDir
指定要确认的目录名称。(通过调用SdAskDestPath来得到该信息)
nReserved
给该参数传递0。不允许其它值。
返回值:
YES (1):表明单击了Yes按钮并且目录已经被确认并将被创建。
NO (0):表明单击了No按钮,并且指定的目录不会被创建。
<0:表明Yes被选定了但函数未能创建新目录。

5.12  SdConfirmRegistration
语法:SdConfirmRegistration (szTitle, szName, szCompany, szSerial, nReserved);
说明:SdConfirmRegistration函数创建一个对话框,显示用户名、公司名称和序列号。如果在该对话框的任何区域输入一个空字符串(””),显示的区域将为空。
参数:
szTitle
指定对话框标题。为显示缺省标题(“注册认可”) ,给该参数传递一个空字符串(””)。
szName
指定最终用户姓名。
szCompany
指定公司名称。
szSerial
指定序列号。如果该参数包含一个空字符串(””),序列号区不在对话框显示。
nReserved
给该参数传递0。不允许其它值。
返回值:
YES (1):表明单击Yes按钮。
NO (0):表明单击No按钮。
注解:
?为得到序列号和最终用户的姓名和公司名,调用SdRegisterUserEx。只要得到姓名和公司名,调用SdRegisterUser。

5.13  SdDisplayTopics
语法:SdDisplayTopics (szTitle, szMsg, listTopics, listDetails, nReserved);
说明:SdDisplayTopics 函数创建一个对话框,显示基于主题数据(资料)的信息。对话框提供一个标题然后是标题的主题和说明。你可以修改说明文本的字体风格以让它和标题(主题)文本想区别。消息和主题标题通常是粗体。可使用该对话框显示帮助主题、例子等。
参数:
szTitle
指定对话框标题。为显示缺省标题(“自定义安装帮助”) ,给该参数传递一个空字符串(””)。
szMsg
指定对话框中显示的消息。为显示该对话框的缺省指示,给该参数传递一个空字符串(””)。
listTopics
指定要显示的包含主题的字符串列表。
listDetails
指定包含每个主题的说明的字符串列表。
nReserved
给该参数传递0。不允许其它值。
返回值:
NEXT (1):表明单击了Next按钮。
BACK (12):表明单击了Back按钮。
注解:
?消息静态区必须以801为ID。主题标识符ID必须在802-849的范围之内。说明区ID必须在851-899的范围之内。
?静态说明区的空间由对话框的大小固定。你不能动态改变listDetails列表的空间。如果主题和说明的数目小于静态区的数目,在空白区不显示任何内容,但对话框大小不会改变。

5.14  SdExceptions
语法:SdExceptions (nExceptionType, szFilename);
说明:SdExceptions函数显示一个对话框,通知最终用户遇到一个共享,锁定(在使用中)或只读的文件并提供适当的选项。
参数:
nExceptionType
指定遇到文件问题的类型。在该参数位置传递下列预定义常量之一:
SHARED:一个共享的文件,其引用计数器已经减为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函数显示一个对话框,通知最终用户安装已完成并给用户信息或选择。SdFinish对话框显示两个消息和两个复选框选择选项。例如,你可能想要提供给用户查看README文件或运行应用程序的选择。
    为在消息中或复选框说明中插入产品名称,在szMsg1, szMsg2, szOpt1, 和szOpt2传递的字符串中使用位置夹%P。
参数:
szTitle
指定对话框标题。为显示缺省标题(“安装完成”) ,给该参数传递一个空字符串(””)。
szMsg1
指定在对话框顶端显示的消息。为显示通知用户安装完成的缺省指示,给该参数传递一个空字符串(””)。
szMsg2
指定在对话框底部显示的消息。为显示缺省指示(“单击Finish按钮完成安装”),给该参数传递一个空字符串(””)。
szOpt1
指定显示在第一个复选框旁边的文本。给该参数传递一个空字符串(“”)来隐藏复选框。
szOpt2
指定显示在第二个复选框旁边的文本。给该参数传递一个空字符串(“”)来隐藏复选框。
bvOpt1
返回第一个复选框的选择状态(TRUE或FALSE)。
bvOpt2
返回第二个复选框的选择状态(TRUE或FALSE)。
返回值:
NEXT (1):表明单击了Finish按钮。
注解:
?SdFinish没有选项来终止安装和重启最终用户的计算机。当SdFinish返回时,安装继续执行。当有必要提供给用户重启的选项时,可用调用SdFinishReboot来代替。
?因为SdFinish被设计为宣告安装结束,所以Back按钮被禁用。

5.16  SdFinishEx
语法:SdFinishEx (szTitle, szMsg1, szMsg2, szOpt1, szOpt2, bvOpt1, bvOpt2);
说明:SdFinishEx函数调用SdFinish或SdFinishReboot来显示一个对话框,通知最终用户安装已完成并给用户信息或选择。如果系统变量BATCH_INSTALL等于FALSE(表明安装过程中没有遇到锁定文件),SdFinishEx调用SdFinish来显示对话框。如果BATCH_INSTALL等于TRUE,SdFinishEx调用SdFinishReboot来显示对话框。
    为在消息中或复选框说明中插入产品名称,在szMsg1, szMsg2, szOpt1, 和szOpt2传递的字符串中使用位置夹%P。
参数:
参数和SdFinish的相同。如果BATCH_INSTALL等于TRUE,这些参数被忽略并调用 SdFinishReboot(“”,””,SYS_BOOTMACHINE,””,0)。
返回值:
0:表明调用了SdFinish。
NEXT (1):表明调用SdFinishReboot并且最终用户不重启计算机。
<0:表明调用SdFinishReboot并且最终用户选择重启计算机,但重启失败。

5.17  SdFinishReboot
语法:SdFinishReboot (szTitle, szMsg1, nDefOption, szMsg2, nReserved);
说明:SdFinishReboot函数在你的安装结尾宣告安装完成并提供给用户重启系统的选项。重启系统允许修改Autoexec.bat,Config.sys和一些.ini文件使其起作用。
    SdFinishReboot对话框在静态文本区中显示两个消息。用参数szMsg1和szMsg2来设置这些区域的值。为在消息中或复选框说明中插入产品名称,在szMsg1和szMsg2传递的字符串中使用位置夹%P。
参数:
szTitle
指定对话框标题。为显示缺省标题(“安装完成”) ,给该参数传递一个空字符串(””)。
szMsg1
指定在对话框顶端显示的消息。为显示通知用户安装完成的缺省指示,给该参数传递一个空字符串(””)。
nDefOption
指定一个缺省单选按钮选项选择。在该参数位置传递下列预定义常量之一:
SYS_BOOTMACHINE:安装结束时重启计算机。
0:不重启计算机。.
szMsg2
指定显示在对话框底部的文本,提供用户要做什么的信息。为显示缺省指示,传递一个空字符串(””)。
nReserved
给该参数传递0。不允许其它值。
返回值:
WILL_REBOOT:表明用户选择重启系统。
NEXT (1):表明用户没有选择重启系统或Windows。
<0:表明用户选择重启系统或Windows,但重启失败。
注解:
?因为当其它InstallShield实例运行时,InstallShield将尽力不重启计算机,所以你必须在允许SdFinishReboot重启Windows或系统前关闭所有其它InstallShield实例。另外,你给用户的消息必须要求他们以后若要重启系统,则他们必须确保首先关闭所有其它的应用程序。
?InstallShield自动确保锁定的.dll和.exe文件在下一次系统启动时将被更新。
?因为SdFinishReboot被设计为宣告安装结束,所以Back按钮被禁用。

5.18  SdInit
语法:SdInit ( );
说明:SdInit函数准备一个调用Sd对话框函数的安装:装入所需的资源字符串,还原最小化的InstallShield窗口,并指定在Sd对话框中Windows 95风格的复选框。
参数:
该函数没有参数。
返回值:
0:表明安装为调用Sd对话框函数作好初始化。
1:表明为调用Sd对话框函数,安装已经被初始化。
注解:
?该函数由每个Sd函数自动调用。没有必要显式调用SdInit,除非你的脚本在调用任何Sd对话框函数前调用了DialogSetInfo。这种情况下,你的脚本必须在调用DialogSetInfo前调用SdInit;否则对DialogSetInfo的调用不起任何作用。

——————————————————————
公告栏
———————————
留言板
———————————
看广告玩游戏送QQ币

Random Posts

Leave a Reply