C++乐园

C/C++ 交流

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  12 随笔 :: 18 文章 :: 14 评论 :: 0 Trackbacks
[转载]InstallShield内部库函数之5 Sd对话框函数
InstallShield内部库函数之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的调用不起任何作用。
5.19  SdLicense
语法:SdLicense (szTitle, szMsg, szQuestion, szLicenseFile);
说明:SdLicense函数显示一个对话框,包含一个在多行编辑区的许可证协议。许可证协议保存在一个由参数szLicenseFile指定的文本文件中。
    用户可以上下滚动来阅读协议,然后必须选择Yes、No或Enable、Back按钮。因为这可能是你将显示的第一个对话框,你可能要禁止Back按钮。如果用户选择了Yes,安装将继续。如果用户选择了No,InstallShield将显示退出安装对话框。
参数:
szTitle
指定对话框标题。为显示缺省标题("软件许可证协议") ,给该参数传递一个空字符串("")。
szMsg
指定显示在多行编辑区上方的静态文本区中的消息。为显示缺省指示,传递一个空字符串。
szQuestion
指定显示在多行编辑区下方的静态文本区中的文本。你可能在这儿放置一个问题,用户必须选择Yes 或 No来响应它。为显示缺省指示,给该参数传递一个空字符串("")。
szLicenseFile
指定包含许可证协议的文本文件名。该文件必须被加到安装文件窗格中适当语言文件夹中。
返回值:
YES (1):表明用户选择了Yes按钮。
BACK (12):表明用户选择了Back按钮。
注解:
·该函数不能返回NO,因为,如果用户选择了No按钮,将显示退出安装对话框。
·你也可以通过输入全限定名,在引号中,或一个Universal Naming Convention (UNC)路径来指定szLicenseFile。
·在szLicenseFile中的文本在超过1024个字符的一行后必须包含硬回车。该文件的文本必须以1024字节为间隔读入字符串列表。如果从szLicenseFile的文本不包含硬回车,单词会在SdLicense对话框中意外地回绕。
5.20  SdLoadString
语法:SdLoadString (nID);
说明:SdLoadString函数返回与指定的资源ID相联系的字符串值。安装引擎首先在_isuser.dll(如果该文件存在)中查找资源;如果资源没有找到,安装引擎在_isres.all中查找。
参数:
nID
指定一个在_isuser.dll或 _isres.dll中的字符串资源的标识符。一些nID的有效值可以在InstallShield  Professional  文件夹的 Script\Ifx\Include 的子文件夹的 Ifx.h文件中找到。
返回值:
非空字符串值
SdLoadString成功检索到字符串值。
空字符串值("")
表明SdLoadString失败。
5.21  SdMakeName
语法:SdMakeName (svSection, szDlg, szUnused, nvDlgName);
说明:SdMakeName函数为一个自定义对话框创建一个节名。该节名在写到一个.iss文件或从中读出时被使用,由InstallShiled Silent使用。
参数:
svSection
指定节名(InstallShield使用变量szDlg和 nvDlgName来给该变量置一个值)。该值由SilentReadData和 SilentWriteData.使用。
szDlg
指定自定义对话框的名称。
szUnused
该参数不使用,给它传递一个空字符串("")。
nvDlgName
指定记录SdMakeName被由szDlg命名的对话框调用的次数的计数器。InstallShield自动增加该计数器。为每个自定义对话框使用一个唯一的变量名。(可参阅下面的注解)
返回值:  无。
注解:
·为使节被适当命名,你必须在每个不同的自定义对话框的第四个参数使用一个唯一的变量名。做到这一点的简单方法是在szDlg使用对话框名来命名该变量。例如,当szDlg是"MyDlgOne",命名在第四个参数的变量为nvMyDlgOne;当szDlg是"MyDlgTwo",命名该变量为nvMyDlgTwo。
5.22  SdOptionsButtons
语法:SdOptionsButtons (szTitle, szMsg, listButtons, listDescription);
说明:SdOptionsButtons函数显示一个对话框,包含一到四个位图按钮和一个简短的对每个按钮的文本说明。
参数:
szTitle
指定对话框标题。为显示缺省标题("选择组件") ,给该参数传递一个空字符串("")。
szMsg
指定显示在对话框的消息。为显示该对话框缺省指示("请选择你要安装的组件"),给该参数传递一个空字符串("")。
listButtons
指定一个包含一到四个元素的字符串列表。每个元素是一个格式化的指定显示在按钮上的位图的字符串。一个按钮将被用来显示列表中的每个字符串元素。字符串列表元素必须有下列格式:
 "@<位图ID>;<位图图标标志>;<透明颜色>"
由@符号开始字符串并后随位图ID。<位图图标标志>域是1(真)或0(假),表明位图被显示时在<透明颜色>域指定的颜色是否要透明显示。<透明颜色>域指定一个RGB值,它是位图的透明颜色。注意分号将ID和图标标志、图标标志和透明颜色分隔。
更多的信息可参阅下面的注解部分。
listDescription
指定一个包含一到四个字符串元素的字符串列表,每个相对应于参数listButtons中的一个字符串。每个字符串是一个和它相应按钮一起显示的文本说明。
返回值:
NEXT (1):表明单击了NEXT按钮。
BACK (12):表明单击了Back按钮。
101:对应于listButtons中的第一个字符串元素的按钮被选定。
102:对应于listButtons中的第二个字符串元素的按钮被选定。
103:对应于listButtons中的第三个字符串元素的按钮被选定。
104:对应于listButtons中的第四个字符串元素的按钮被选定。
注解:
·虽然SdOptionsButtons可以被使用为一个安装类型对话框,但还是推荐使用SdSetupTypeEx对话框来允许最终用户选择一个安装类型,因为它不需要任何用户化。注意如果你调用SdOptionsButtons来得到最终用户的安装类型选择,你必须然后调用ComponentButtons来为你的安装建立选择的安装类型。
·InstallShield提供可以被该函数调用的四个_isres.dll中的缺省位图。这些位图有从12001到12004的ID和在脚本范例中相应的典型、可移植、简易和自定义安装类型。
·如果你使用该对话框作其它用途或你想要使用_isres.dll中提供的类型之外的安装类型,你必须将你自己的自定义按钮加入到_isuser.dll对话框模板中并且然后在你的安装中包含自定义的_isuser.dll。
·为防止用户没有单击一个特定按钮时就退出对话框,在你调用SdOptionsButtons前调用Disable函数来禁止Next按钮。
5.23  SdProductName
语法:SdProductName (szProductName);
说明:SdProductName函数使得你的产品名对所有的%P位置夹都有效。%P位置夹在一些Sd对话框中的静态文本区中找到。另外,一些Sd对话框函数,如SdFinish,允许你在作为函数参数的字符串中包含%P。
参数:
szProductName
指定被安装的产品名。该名称将取代在Sd对话框的适当静态区出现的任何产品名位置夹(%P)。
返回值:
该函数没有返回值。
5.24  SdRegisterUser
语法:SdRegisterUser (szTitle, szMsg, svName, svCompany);
说明:SdRegisterUser函数创建一个对话框,检索用户姓名和公司名称。如果svName和svCompany都包含空字符串,InstallShield将从注册表中得到用户姓名和公司名称。
    仅当两个编辑区都存在数据时Next按钮才被激活。如果InstallShield可以从系统查找缺省姓名和公司名称,Next按钮被自动激活。完成时,SdRegisteruser调用RegDBSetDefaultRoot来将注册表开关键设置给HKEY_CLASSES_ROOT。
参数:
szTitle
指定对话框标题。为显示缺省标题("用户信息") ,给该参数传递一个空字符串("")。
szMsg
指定显示在对话框的消息。该文本被看作为一个静态控制。为显示该对话框缺省指示,给该参数传递一个空字符串("")。
svName
返回由用户输入的姓名。注意SdRegisterUser显示该参数的初始值由用户进行编辑。如果svName和svCompany都是空字符串,在目标系统注册表中被找到的用户姓名将被显示来进行编辑。
svCompany
返回由用户输入的公司名称。注意SdRegisterUser显示该参数的初始值由用户进行编辑。如果svName和svCompany都是空字符串,在目标系统注册表中被找到的公司名称将被显示来进行编辑。
返回值:
NEXT (1):表明单击了NEXT按钮。
BACK (12):表明单击了Back按钮。
5.25  SdRegisterUserEx
语法:SdRegisterUserEx (szTitle, szMsg, svName, svCompany, svSerial);
说明:SdRegisterUserEx函数创建一个对话框,检索用户姓名、公司名称和序列号。如果svName和svCompany都包含空字符串,InstallShield将从注册表得到用户姓名和公司名称。
    仅当三个编辑区都存在数据时Next按钮才被激活。你不能让任何区域空白。
完成时,SdRegisteruser调用RegDBSetDefaultRoot来将注册表开关键设置给HKEY_CLASSES_ROOT。
参数:
szTitle
指定对话框标题。为显示缺省标题("用户信息") ,给该参数传递一个空字符串("")。
szMsg
指定显示在对话框的消息。该文本被看作为一个静态控件。为显示该对话框缺省指示,给该参数传递一个空字符串("")。
svName
返回由用户输入的姓名。注意SdRegisterUserEx显示该参数的初始值由用户进行编辑。如果svName和svCompany都是空字符串,在目标系统注册表中被找到的用户姓名将被显示来进行编辑。
svCompany
返回由用户输入的公司名称。注意SdRegisterUserEx显示该参数的初始值由用户进行编辑。如果svName和svCompany都是空字符串,在目标系统注册表中被找到的公司名称将被显示来进行编辑。
svSerial
返回用户输入的序列号。你可以使用该信息并把它写入一个文件或者把它显示在一个确认对话框中。
返回值:
NEXT (1):表明单击了NEXT按钮。
BACK (12):表明单击了Back按钮。
5.26  SdSelectFolder
语法:SdSelectFolder (szTitle, szMsg, svDefGroup);
说明:SdSelectFolder函数显示供选择的程序文件夹。SdSelectFolder允许你提供一个缺省选择。用户也可以输入一个新的文件夹名。SdSelectFolder将仅返回被选择的或输入的文件夹名。它不能创建文件夹。
参数:
szTitle
指定对话框标题。为显示缺省标题("选择程序文件夹") ,给该参数传递一个空字符串("")。
szMsg
指定显示在对话框的消息。该文本被看作为一个静态控件。为显示该对话框缺省指示,给该参数传递一个空字符串("")。
svDefGroup
返回被选文件夹的名称。
返回值:
NEXT (1):表明单击了NEXT按钮。
BACK (12):表明单击了Back按钮。
注解:
·运行在Windows NT下的一个安装中,如果在调用SdSelectFolder前调用ProgDefGroup,由SdSelectFolder显示的程序文件夹(公用或专用)将依赖于传递给ProgDefGroupType的参数。
5.27  SdSetupType
语法:SdSetupType (szTitle, szMsg, svDir, nReserved);
说明:SdSetupType函数显示一个对话框允许最终用户选择三种标准安装类型之一:典型、简易或自定义。这些安装选项显示时有标准描述文本。如果你想加入其它安装类型或改变显示的安装类型名或描述,调用SdSetupTypeEx来替代。
    对话框也显示一个缺省的目标路径。一个Browse按钮装入一个对话框,允许最终用户通过输入一个新文件夹名或从一个列表中选择存在的文件夹来修改目标路径。如果最终用户输入一个不存在的文件夹名,将显示一个消息框来询问是否要创建该文件夹。如果最终用户单击Yes,该函数自动创建指定文件夹。指定文件夹的全限定路径在svDir返回。
如果最终用户在使用组件对话框来选定和撤消选定与已选安装类型相联系的组件后,返回到安装类型对话框,那么那些选择将丢失。这种情况发生是因为SdSetupType函数每次被调用时自动根据选中的安装类型复位缺省组件选项。
参数:
szTitle
指定对话框标题。为显示缺省标题("安装类型") ,给该参数传递一个空字符串("")。
szMsg
指定显示在对话框的消息。该文本被看作为一个静态控件。为显示该对话框缺省指示,给该参数传递一个空字符串("")。
svDir
指定一个缺省文件夹名。返回最终用户所选的文件夹名。
nReserved
保留为将来使用。给该参数传递0。
返回值:
TYPICAL (301):表明用户选择典型安装。
COMPACT (302):表明用户选择简易安装。
CUSTOM (303):表明用户选择自定义安装。
BACK (12):表明单击Back按钮。
5.28  SdSetupTypeEx
语法:SdSetupTypeEx (szTitle, szMsg, szReserved, svSetupType, nReserved);
说明:SdSetupTypeEx函数显示一个对话框,当你指定除典型、简易和自定义之外的安装类型时,允许最终用户选择安装类型。
参数:
szTitle
指定对话框标题。为显示缺省标题("安装类型") ,给该参数传递一个空字符串("")。
szMsg
指定显示在对话框的消息。为显示该对话框缺省指示,给该参数传递一个空字符串("")。
szReserved
给该参数传递一个空字符串("")。不允许其它值。
svSetupType
指定一个缺省安装类型和返回由最终用户选择的安装类型。为使在列表中的第一次安装为缺省选择,给该参数传递一个空字符串("")。在该参数返回的字符串将和在IDE中指定的安装类型名相匹配。
nReserved
给该参数传递0。不允许其它值。
返回值:
0:表明SdSetupTypeEx成功。
BACK (12):表明单击了Back按钮。
5.29  SdShowAnyDialog
语法:SdShowAnyDialog (szTitle, szID, nID, nReserved);
说明:SdShowAnyDialog函数显示一个自定义或改进型对话框。该函数仅推荐给高级用户使用。
参数:
szTitle
指定对话框标题。为显示缺省标题("欢迎") ,给该参数传递一个空字符串("")。
szID
指定标识对话框的标识符字符串。如果该参数包含一个空字符串(""),SdShowAnyDialog使用nID的值。
nID
指定标识对话框的数值型值。如果szID包含一个空字符串(""),该参数被忽略。
nReserved
给该参数传递0。不允许其它值。
返回值:
NEXT (1):表明单击了Next按钮。
BACK (12):表明单击了Back按钮。
注解:
·为了使用SdShowAnyDialog函数,你必须知道你希望显示的_isres.dll中的改进型对话框或_isuser.dll中的自定义对话框的ID。
·如果对话框只有静态控件,你不需要修改SdShowAnyDialog脚本文件。但如果你的对话框有其它控件,为了处理用户的反馈,你必须修改Sdsadlg.rul文件,位于你的InstallShield程序文件夹中的Script/Srt文件夹,
5.30  SdShowDlgEdit1
语法:SdShowDlgEdit1 (szTitle, szMsg, szField1, svEdit1);
说明:SdShowDlgEdit1函数创建一个通用对话框,显示一个消息和一个单行编辑区。你可以为该对话框指定一个标题。
参数:
szTitle
指定对话框标题。为显示缺省标题("编辑数据") ,给该参数传递一个空字符串("")。
szMsg
指定显示在对话框的消息。为在该消息包含由先前调用SdProductName设置的产品名称,在该消息的任何地方插入位置夹%P。当消息被显示时,%P由产品名称代替。
szField1
指定显示在编辑区左边的域名。缺省的域名是"域1:";为显示缺省名称,给该参数传递一个空字符串("")。可以被显示的字符数最大约为10。实际的最大值依赖于域名中每个字符的组合宽度。如果域名超出有效空间,则当对话框被显示时它将从右被截尾。
svEdit1
指定编辑区的初始值;当对话框被关闭时,返回编辑区的值。
返回值:
NEXT (1):表明单击了Next按钮。
BACK (12):表明单击了Back按钮。
5.31  SdShowDlgEdit2
语法:SdShowDlgEdit2 (szTitle, szMsg, szField1, szField2, svEdit1, svEdit2);
说明:SdShowDlgEdit2函数创建一个通用对话框,显示一个消息和两个单行编辑区。你可以为该对话框指定一个标题。
参数:
szTitle
指定对话框标题。为显示缺省标题("编辑数据") ,给该参数传递一个空字符串("")。
szMsg
指定显示在对话框的消息。为在该消息包含由先前调用SdProductName设置的产品名称,在该消息的任何地方插入位置夹%P。当消息被显示时,%P由产品名称代替。
szField1
指定显示在第一个编辑区左边的域名。缺省的域名是"域1:";为显示缺省名称,给该参数传递一个空字符串("")。可以被显示的字符数最大约为10。实际的最大值依赖于域名中每个字符的组合宽度。如果域名超出有效空间,则当对话框被显示时它将从右被截尾。
szField2
为第二个编辑区指定域名。缺省为"域2:"。
svEdit1
指定第一个编辑区的初始值;当对话框被关闭时,返回第一个编辑区的值。
svEdit2
指定第二个编辑区的初始值;当对话框被关闭时,返回第二个编辑区的值。
返回值:
NEXT (1):表明单击了Next按钮。
BACK (12):表明单击了Back按钮。
5.32  SdShowDlgEdit3
语法:SdShowDlgEdit3 (szTitle, szMsg, szField1, szField2, szField3, svEdit1, svEdit2, svEdit3);
说明:SdShowDlgEdit2函数创建一个通用对话框,显示一个消息和三个单行编辑区。你可以为该对话框指定一个标题。
参数:
szTitle
指定对话框标题。为显示缺省标题("编辑数据") ,给该参数传递一个空字符串("")。
szMsg
指定显示在对话框的消息。为在该消息包含由先前调用SdProductName设置的产品名称,在该消息的任何地方插入位置夹%P。当消息被显示时,%P由产品名称代替。
szField1
指定显示在第一个编辑区左边的域名。缺省的域名是"域1:";为显示缺省名称,给该参数传递一个空字符串("")。可以被显示的字符数最大约为10。实际的最大值依赖于域名中每个字符的组合宽度。如果域名超出有效空间,则当对话框被显示时它将从右被截尾。
szField2
为第二个编辑区指定域名。缺省为"域2:"。
szField3
为第二个编辑区指定域名。缺省为"域2:"。
svEdit1
指定第一个编辑区的初始值;当对话框被关闭时,返回第一个编辑区的值。
svEdit2
指定第二个编辑区的初始值;当对话框被关闭时,返回第二个编辑区的值。
svEdit3
指定第三个编辑区的初始值;当对话框被关闭时,返回第三个编辑区的值。
返回值:
NEXT (1):表明单击了Next按钮。
BACK (12):表明单击了Back按钮。
5.33  SdShowFileMods
语法:SdShowFileMods (szTitle, szMsg, szTargetFile, szAltFile, listChanges, nvSelection);
说明:SdShowFileMods函数创建一个对话框,显示你想要对一个文件进行的修改。下面这些选择是有效的:
修改目标文件。
修改替代文件,它是目标文件的拷贝,但非联合修改。
不作任何修改。SdShowFileMods不对文件作修改。你必须使用适当的文件函数把那些修改写入你的脚本。
参数:
szTitle
指定对话框标题。为显示缺省标题("修改文件") ,给该参数传递一个空字符串("")。
szMsg
指定显示在对话框的消息。为显示该对话框的缺省指示,给该参数传递一个空字符串("")。
szTargetFile
指定要修改的文件名。它将和第一个单选按钮一起显示。
szAltFile
如果最终用户决定要作修改,指定该文件的替代名。这将和第二个单选按钮一起显示。为使用sztargetFile指定的扩展名为.bak的文件名,给该参数传递一个空字符串("")。
listChanges
指定字符串列表名,它包含对文件所作修改的列表。该列表位于一个多行编辑区,允许最终用户选择要实现的修改。
nvSelection
返回最终用户选择的按钮的ID:
101: "让安装修改<szTargetFile>文件。"
102: "保存对<szAltFile>所要求的修改。"
103: "不作任何修改。"
返回值:
NEXT (1):表明单击了Next按钮。
BACK (12):表明单击了Back按钮。
5.34  SdShowInfoList
语法:SdShowInfoList (szTitle, szMsg, listID);
说明:SdShowInfoList函数创建一个对话框,显示一个可滚动的消息列表。
参数:
szTitle
指定对话框标题。为显示缺省标题("信息") ,给该参数传递一个空字符串("")。
szMsg
指定显示在信息框上方一行的消息。如果消息长于一行,将被从右截尾。如果消息包含一个换行符(\n),换行符后的文本不被显示。为显示缺省消息("Text"),给该参数传递一个空字符串("")。
listID
指定显示在对话框的消息列表。所有显示在对话框的消息为只读。
返回值:
NEXT (1):表明单击了Next按钮。
BACK (12):表明单击了Back按钮。
注解:
·多行编辑区必须为只读。
·SdShowInfoList可以显示大约多达57200个字符的列表。
5.35  SdShowMsg
语法:SdShowMsg (szMsg, bShow);
说明:SdShowMsg函数打开或关闭一个小的非模态窗口,显示由szMsg指定的消息。当bShow为TRUE,窗口被打开,消息显示在窗口中,并且继续脚本中下一个语句的处理。注意SdShowMsg窗口被置于安装窗口的中央。当bShow为FALSE时,szMsg被忽略并且关闭SdShowMsg窗口。
参数:
szMsg
指定显示在窗口的消息。为显示缺省消息("安装正查找已安装的组件"),给该参数传递一个空字符串("")。当bShow为FALSE时该参数被忽略。
bShow
指定是否要打开或关闭窗口。在该参数位置传递下列预定义常量之一:
TRUE:如果窗口没有打开则打开它。
FALSE:如果窗口打开了则关闭它。
返回值:
返回值总为0。
注解:
·SdShowMsg函数提供了一个简单方法使得脚本进程继续的同时,可以将一个显示丰富资料的消息保留在屏幕上。
·当SdShowMsg窗口是打开的,随后的对SdShowMsg(第二个参数为TRUE)的调用被忽略。为改变消息,你必须首先以第二个参数为FALSE调用SdShowMsg来关闭窗口,然后以第二个参数为TRUE,szMsg为新的消息再次调用SdShowMsg。
·SdShowMsg窗口水平调整大小来在一行上显示szMsg的值。如果消息的长度超过窗口的最大宽度,消息被截尾以适应窗口。
·SdShowMsg被设计为单行显示消息。不要在szMag中嵌入换行符(\n)。
5.36 SdStartCopy
语法:SdStartCopy (szTitle, szMsg, listData);
说明:SdStartCopy函数创建一个多行编辑区,显示安装过程中所作的设置和选择。为按需改变设置,用户可以单击对话框的Back按钮来返回到以前的对话框。在检索用户的选择后,开始文件传输处理之前调用SdStartCopy。
    使用一个字符串列表来收集安装过程中得到的信息。然后你可以将该字符串列表传递给SdStartCopy的参数listData。SdStartCopy将显示该列表并允许用户在继续文件传输处理之前确认这些信息是正确的。
参数:
szTitle
指定对话框标题。为显示缺省标题("开始拷贝文件") ,给该参数传递一个空字符串("")。
szMsg
指定显示在多行编辑区上方的静态文本区的消息。为显示该对话框的缺省指示,给该参数传递一个空字符串("")。
listData
指定从最终用户检索得的信息字符串列表。SdStartCopy会自动将每个元素放置到多行编辑区。如果列表为空,该多行编辑区将被隐藏并且只有静态文本区为可见。
返回值:
NEXT (1):表明用户选定了Next按钮。
BACK (12):表明用户选定了Back按钮。
5.37  SdWelcome
语法:SdWelcome (szTitle, szMsg);
说明:SdWelcome函数显示一个对话框,欢迎最终用户。
参数:
szTitle
指定显示在对话框标题部分的文本。为显示缺省标题("欢迎") ,给该参数传递一个空字符串("")。
szMsg
指定显示在欢迎对话框中的消息。为在该消息中包含先前调用SdProductName而设置的产品名称,在该消息的任意位置插入一个位置夹%P。当该消息被显示时,%P被产品名称代替。为显示缺省欢迎消息("欢迎进入%P安装程序。该程序将在你的计算机上安装%P"),给该参数传递一个空字符串("")。
返回值:
NEXT (1):表明单击了Next按钮。
5.38  SdWelcomeMaint
语法:SdWelcomeMaint (szTitle, szMsg, nType);
说明:SdWelcomeMaint函数显示一个对话框 ,在一个维护型安装(也就是,一个已经被运行的安装的重运行)的开始时使用。该对话框包含修改、修复、删除选项按钮。
参数:
szTitle
指定对话框标题。为显示缺省标题("欢迎") ,给该参数传递一个空字符串("")。
szMsg
指定显示在对话框的消息。为显示该对话框的缺省指示,给该参数传递一个空字符串("")。
nType
指定哪个选项按钮为缺省选择。你必须在该参数位置传递下列预定义常量之一,使在对话框中正确显示:
MODIFY:修改按钮为缺省选择。
REPAIR:修复按钮为缺省选择。
REMOVEALL:删除按钮为缺省选择。
返回值:
MODIFY (301):表明当单击Next按钮后修改按钮被选定。
REPAIR (302):表明当单击Next按钮后修复按钮被选定。
REMOVEALL (303):表明当单击Next按钮后删除按钮被选定。
posted on 2007-01-18 11:58 小不懂^_^ 阅读(1451) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理