分享
 
 
 

InstallShield内部库函数之6 自定义对话框函数

王朝other·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

InstallShield内部库函数之6 自定义对话框函数

下列函数处理自定义对话框进程。你使用一个资源编辑器来创建对话框并可用这些函数把它插入脚本中。

任何你可以创建的Windows对话框都可以被使用在一个安装脚本中。对话框可以有单行或多行编辑框,单个或多个选择列表框,组合框,单选钮,复选框和下按按扭作为标准控件。对于更复杂的控件,则提供高级函数,如CmdGetHwndDlg, LOWORD和HIWORD。

CmdGetHwndDlg

检索一个对话框的句柄。

CtrlClear

删除一个编辑、静态、列表框或组合框控件。

CtrlDir

用一个目录列表或一个文件列表来填充一个列表框或组合框。

CtrlGetCurSel

从一个列表框或组合框中选择项目。

CtrlGetMLEText

从一个多行编辑或静态区域中检索文本。

CtrlGetMultCurSel

从一个多选列表框中返回选定项目。

CtrlGetState

从一个对话框中检索一个单选扭,复选框或下按按扭控件的状态。

CtrlGetSubCommand

检索在一个WaitOnDialog函数调用后对控件执行的操作。

CtrlGetText

从一个编辑区,一个静态区或一个组合框的编辑区中检索文本。

CtrlPGroups

检索在目标系统上存在的程序组列表。

CtrlSelectText

选择显示在一个编辑区中文本。

CtrlSetCurSel

在一个列表框或组合框中查找和设置当前选择。

CtrlSetFont

指定对话框中一个控件的字体。

CtrlSetList

把一个列表的内容放至一个列表框或组合框中。

CtrlSetMLEText

设置在一个多行编辑区中的文本。

CtrlSetMultCurSel

设置在一个多选列表框中的当前选择。

CtrlSetState

设置一个复选框,单选钮或下按按扭的当前状态。

CtrlSetText

设置在一个编辑区,一个静态文本区或一个组合框的编辑区中的文本。

DefineDialog

用InstallShield注册一个自定义对话框。

EndDialog

关闭一个自定义对话框。

EzDefineDialog

用InstallShield注册一个自定义对话框。

GetFont

检索一个字体的处理程序。

HIWORD

从一个32位的整数中检索高位字。

LOWORD

从一个32位的整数中检索低位字。

ReleaseDialog

释放一个对话框的关联内存。

SdMakeName

SdMakeName为一个自定义对话框创建一个节名。该节名在向一个.iss文件写或从一个.iss文件中读时使用,.iss文件由InstallShield Silent使用。

SilentReadData

指示InstallShield Silent为一个自定义对话框读取.iss文件对话数据。

SilentWriteData

指示InstallShield Silent为一个自定义对话框写对话数据到.iss文件。

WaitOnDialog

显现一个自定义对话框。

6.1 CmdGetHwndDlg

语法:CmdGetHwndDlg (szDialogName);

说明:CmdGetHwndDlg函数检索由szDialogName标识的对话框的窗口句柄。该对话框必须已经由EzDefineDialog (或DefineDialog)定义,并以通过调用WaitOnDialog而被初始化。

参数:

szDialogName

指定已经由EzDefineDialog (或DefineDialog)定义的对话框的名称。

返回值:

> 0:由szDialogName指定的对话框的窗口句柄。

< 0:CmdGetHwndDlg未能检索到句柄。请确认szDialogName指向的是一个已经正确定义并已被初始化的对话框。

注解:

·当一个对话框用WaitOnDialog函数初始化时,则为它分配一个窗口句柄;该句柄只和该对话框关联,直到一个对EndDialog的调用来关闭该对话框。如果你调用WaitOnDialog来打开在你脚本中先前已经被打开和关闭的一个对话框,你必须再次调用CmdGetHwndDlg来得到新句柄。老的句柄不再有效。

·通常,CmdGetHwndDlg在一个自定义对话框的DLG_INIT例程中被调用。该对话框的句柄被赋给HWND变量来供其它需要它的函数使用。

6.2 CtrlClear

语法:CtrlClear (szDialogName, nControlID);

说明:CtrlClear函数清除各种控件的内容;它删除一个自定义对话框中一个单行或多行编辑区,静态文本区,单或多选列表框或一个组合框的编辑区的内容。

参数:

szDialogName

指定包含有要被删除控件的对话框的名称。

nControlID

指定由szDialogName标识的对话框的控件ID。

返回值:

0:CtrlClear成功删除指定控件的内容。

< 0:CtrlClear未能删除对话框的内容。

6.3 CtrlDir

语法:CtrlDir (szDialogName, nControlID, szDir, nItems);

说明:CtrlDir函数用一个与szDir指定的路径或文件名相匹配的文件列表来填充一个列表框或一个组合框控件。你可以在列表中包括文件名,子目录名和磁盘驱动器名。CtrlDir函数仅工作于自定义对话框。

参数:

szDialogName

指定一个对话框的名称。

nControlID

指定列表框或组合框控件的资源ID。

szDir

指定全限定路径或全限定文件名,可以包括通配符。

nItems

指定在控件中显示的列表的类型。在该参数位置传递下列预定义常量之一。为包含多个元素类型,将这些常量用按位或操作符(|)组合起来:

DLG_DIR_FILE:创建一个与文件说明szDir匹配的文件的列表。

DLG_DIR_DIRECTORY:创建一个存在于路径说明szDir中的子目录的列表。

DLG_DIR_DRIVE:创建一个驱动器列表。

返回值:

0:CtrlDir成功填充一个对话框中指定的控件。

< 0:CtrlDir未能填充指定控件。

6.4 CtrlGetCurSel

语法:CtrlGetCurSel (szDialogName, nControlID, svText);

说明:CtrlGetCurSel函数从一个自定义对话框中的一个单选列表框或组合框控件中检索当前选定的项目。调用CtrlGetMultCurSel来从多选列表框中检索项目。

参数:

szDialogName

指定包含要被检索的项目的自定义对话框的名称。

nControlID

指定单选框或组合框控件的资源ID。

svText

返回nControlID指定的控件中当前被选定的项目。

返回值:

0:CtrlGetCurSel成功检索对话框中当前被选定的项目。

< 0:CtrlGetCurSel未能检索被选定的项目。

6.5 CtrlGetMLEText

语法:CtrlGetMLEText (szDialogName, nControlID, listID);

说明:CtrlGetMLEText函数检索一个自定义对话框中一个多行编辑控件的内容。InstallShield把多行编辑区中的每行放到由listID标识的一个字符串列表中。调用CtrlGetText来检索一个单行编辑区控件的内容。

参数:

szDialogName

指定一个自定义对话框的名称,该对话框包含了其内容要被检索的多行编辑控件。

nControlID

指定多行编辑控件的资源ID。

listID

返回nControlID标识的编辑区中的行的一个字符串列表。由listID标识的字符串列表必须已经通过调用ListCreate而被初始化。

返回值:

0:CtrlGetMLEText成功检索一个多行编辑区的内容。

< 0:CtrlGetMLEText未能检索控件的内容。

6.6 CtrlGetMultCurSel

语法:CtrlGetMultCurSel (szDialogName, nControlID, listID);

说明:CtrlGetMultCurSel函数检索一个多选列表框控件中的当前被选定的行。多选列表框的每个被选定行被放到由listID标识的一个字符串列表中。为从一个单选列表框控件中检索被选定的文本,调用CtrlGetCurSel。CtrlGetMultCurSel只使用于自定义对话框。

参数:

szDialogName

指定一个自定义对话框的名称,该对话框包含了其内容要被检索的列表框控件。

nControlID

指定多行编辑控件的资源ID。

listID

返回由nControlID标识的列表框中的行。由listID标识的字符串列表必须已经通过调用ListCreat而被初始化。

返回值:

0:CtrlGetMultCurSel成功检索当前选定项目。

< 0:CtrlGetMultCurSel未能检索项目。

6.7 CtrlGetState

语法:CtrlGetState (szDialogName, nControlID);

说明:CtrlGetState函数得到一个自定义对话框中一个复选框或单选钮的当前状态。

参数:

szDialogName

指定包含该控件的对话框的名称。

nControlID

指定其状态要被检索的复选框或单选钮的资源ID。

返回值:

BUTTON_CHECKED (-1001):复选框或单选钮被选定。

BUTTON_UNCHECKED (-1002):复选框或单选钮未被选定。

DLG_ERR (-1):CtrlGetState不能确定控件状态。

6.8 CtrlGetSubCommand

语法:CtrlGetSubCommand (szDialogName);

说明:CtrlGetSubCommand函数检索对一个自定义对话框中的一个控件所执行的操作。例如,CtrlGetSubCommand可以告诉你用户单击或双击了一个列表框或组合框控件。它也可以告诉你一个编辑区的内容被修改了。

高级开发人员可以调用CmdGetHwndDlg来处理附加信息。

参数:

szDialogName

指定自定义对话框的名称。

返回值:

EDITBOX_CHANGE (-1007):编辑框的内容已经改变。

LISTBOX_ENTER (-1008):用户双击了一个列表框项目。

LISTBOX_SELECT (-1009):用户单击了一个列表框项目。

6.9 CtrlGetText

语法:CtrlGetText (szDialogName, nControlID, svText);

说明:CtrlGetText函数从一个自定义对话框中的一个编辑区,静态文本区或按扭控件中检索文本。为从多行编辑区控件中检索文本,调用CtrlGetMLEText。

参数:

szDialogName

指定一个对话框的名称,该对话框包含了其文本要被检索的区域或控件。

nControlID

指定编辑区,静态文本区或下按按扭控件的资源ID。

svText

从由nControlID标识的控件或区域中返回的文本。

返回值:

0:CtrlGetText成功检索控件的内容。

< 0:CtrlGetText未能检索内容。

6.10 CtrlPGroups

语法:CtrlPGroups (szDialogName, nControlID);

说明:CtrlPGroups函数将一个现存程序文件夹列表放到一个列表框或组合框控件中。该函数仅工作于自定义对话框。

参数:

szDialogName

Specifies the name of a custom dialog box that contains the control to use.

指定自定义对话框的名称,该对话框包含要使用的控件。

nControlID

指定一个列表框或组合框控件的资源ID。

返回值:

0:CtrlPGroups成功把指定的程序文件夹列表放到控件中。

< 0:CtrlPGroups未能把指定的程序文件夹列表放到控件中。

6.11 CtrlSelectText

语法:CtrlSelectText (szDialogName, nControlID);

说明:CtrlSelectText函数选定一个编辑区或一个组合框的编辑区中的所有文本。如果该控件是一个多行编辑区,该函数选定所有行的所有文本。该函数仅工作于自定义对话框。

参数:

szDialogName

指定一个有效对话框的名称,该对话框包含要被选定的编辑区。

nControlID

指定要被选定的编辑区或组合框控件的资源ID。

返回值:

0:CtrlSelectText成功选定了区域中的所有文本。

< 0:CtrlSelectText未能选定文本。

6.12 CtrlSetCurSel

语法:CtrlSetCurSel (szDialogName, nControlID, szText);

说明:CtrlSetCurSel函数在指定的列表框或组合框控件中查找一个字符串。如果找到,CtrlSetCurSel选定(高亮显示)该项目。对多选列表框和组合框则调用CtrlSetMultCurSel。CtrlSetCurSel函数仅使用于自定义对话框。

参数:

szDialogName

指定一个有效自定义对话框的名称,该对话框包含要被查找的控件。

nControlID

指定包含查找字符串的控件的资源ID。

szText

指定查找字符串。如果该字符串被找到,则被选定(高亮显示)。

返回值:

0:CtrlSetCurSel成功找到和选定了指定的字符串。

< 0:CtrlSetCurSel未能找到和选定指定的字符串。

6.13 CtrlSetFont

语法:CtrlSetFont (szDialogName, hFont, nControlID);

说明:CtrlSetFont函数指定一个自定义对话框中一个控件的字体。在对话框消息处理循环中的DLG_INIT例程中调用该函数。

参数:

szDialogName

指定一个有效对话框的名称。

hFont

指定已经通过调用GetFont而被创建的一个字体的处理程序。

nControlID

指定其字体要被设置的控件的资源ID。为给对话框中的所有控件设置字体,给该参数传递预定义常量ALLCONTROLS。

返回值:

0:CtrlSetFont成功在一个对话框中设置所要求的字体。

< 0:CtrlSetFont未能在一个对话框中设置所要求的字体。

6.14 CtrlSetList

语法:CtrlSetList (szDialogName, nControlID, listID);

说明:CtrlSetList函数把一个字符串列表中的内容放到指定的单或多选列表框或组合框控件中。任何原先存在的内容被包含在listID中的项所置换。InstallShield将字符串列表中的每个元素放到列表框或组合框控件中的每个元素中。

参数:

szDialogName

指定包含列表框或组合框的对话框的名称。

nControlID

指定列表框或组合框的资源ID。

listID

指定一个字符串列表的名称,该列表包含要被拷贝到列表框或组合框控件中的元素。

返回值:

0:CtrlSetList成功将字符串的内容放到控件中。

< 0:CtrlSetList未能将字符串的内容放到控件中。

6.15 CtrlSetMLEText

语法:CtrlSetMLEText (szDialogName, nControlID, listID);

说明:CtrlSetMLEText函数设置一个多行编辑框控件中的文本。InstallShield 将listID中的每个字符串分别放进该多行编辑框控件中。该函数仅使用于自定义对话框。

参数:

szDialogName

指定一个对话框的名称。

nControlID

指定一个对话框中的多行编辑框控件的资源ID。

listID

指定一个有效字符串列表的名称 ,该列表包含了要被拷贝到多行编辑控件中的元素。

返回值:

0:CtrlSetMLEText将文本设置到控件中。

< 0:CtrlSetMLEText未能设置控件中的文本。

6.16 CtrlSetMultCurSel

语法:CtrlSetMultCurSel (szDialogName, nControlID, szText, nSelectFlag);

说明:CtrlSetMultCurSel函数查找指定的多选列表框或组合框控件。如果nSelectFlag 被设置为TRUE,CtrlSetMultCurSel选定(高亮显示)被找到的项目。该函数仅使用于自定义对话框。

参数:

szDialogName

指定一个自定义对话框的名称。

nControlID

指定对话框中多选列表框或组合框控件的资源ID。

szText

指定查找字符串。

nSelectFlag

指示当CtrlSetMultCurSel找到一个项目时是否要高亮显示它。在该参数位置传递下列预定义常量之一:

TRUE:表明该项目要被高亮显示。

FALSE:表明该项目不被高亮显示。

返回值:

0:CtrlSetMultCurSel在控件中找到文本,并根据nSelectFlag所指示的高亮显示它或不高亮显示它。

< 0:CtrlSetMultCurSel未能在控件中找到文本。

6.17 CtrlSetState

语法:CtrlSetState (szDialogName, nControlID, nState);

说明:CtrlSetState函数设置一个自定义对话框中的一个复选框或单选钮的当前状态。当你用一个资源编辑器或对话框编辑器创建单选钮和复选框时,你可以设置它们的某些特性。如果你因一个按扭的性能遇到了困难,则在编辑器中检查该控件的特性。

参数:

szDialogName

指定一个对话框的名称,该对话框包含复选框或单选钮控件。

nControlID

指定复选框或单选钮控件的资源ID。

nState

指定按扭控件的新状态。在该参数位置传递下列预定义常量之一:

BUTTON_CHECKED:设置按扭状态为CHECKED。

BUTTON_UNCHECKED:设置按扭状态为UNCHECKED。

返回值:

0:CtrlSetState成功设置复选框或单选钮控件的状态。

< 0:CtrlSetState未能设置该控件的状态。

6.18 CtrlSetText

语法:CtrlSetText (szDialogName, nControlID, szText);

说明:CtrlSetText函数设置一个自定义对话框中一个单行编辑区,静态文本区或按扭控件的文本。为设置多行编辑区中的文本,调用CtrlSetMLEText。

参数:

szDialogName

指定一个对话框的名称。

nControlID

指定其中的文本要被设置的单行编辑区,静态文本区或按扭控件的资源ID。

szText

指定放到控件中的文本。

返回值:

0:CtrlSetText成功设置控件中的文本。

< 0:CtrlSetText未能设置控件中的文本。

6.19 DefineDialog

语法:DefineDialog (szDialogName, hInstance, szDLLName, nDialogID, szDialogID,

nReserved, hwndOwner, lMsgLevel);

说明:DefineDialog函数定义一个自定义对话框。当你需要指定一个其属性不能由EzDefineDialog指定的对话框的属性时,调用该函数而不是EzDefineDialog。注意DefineDialog不显示自定义对话框。为显示一个自定义对话框,你必须调用WaitOnDialog。

参数:

szDialogName

指定你要定义的自定义对话框的名称。该名称标识该对话框并使用在所有随后对自定义对话框函数的调用中。该对话框的名称是区分大小写的,你必须完全按照你在该参数指定的那样来使用它。

hInstance

指定对话框驻留其中的DLL的实例句柄。如果你在szDLLName指定DLL的全限定名,你可以将该参数指定为0。为得到一个DLL的实例句柄,调用Microsoft Windows API LoadLibrary。

szDLLName

指定包含对话框资源的DLL文件的全限定名。如果你不指定一个路径,InstallShield在Windows 文件夹中查找该DLL。如果在那儿没有找到,InstallShield查找在查找路径中指定的文件夹。如果你用参数hInstance指定DLL的实例句柄,你可以给该参数传递一个空字符串。当对话框位于_isuser.dll时,你可以为该参数指定一个空字符串。如果该参数指定为一个空字符串,InstallShield将自动检测_isuser.dll。

nDialogID

如果你使用一个数字(而不是一个字符串)来标识对话框资源时,该参数指定资源ID。该参数只在szDialogID是一个空字符串时被使用。建议使用该参数而不是szDialogID来标识对话框资源。

szDialogID

如果你使用一个字符串(而不是一个数字)来标识对话框资源时,该参数指定资源ID。如果该参数是一个空字符串,nDialogID被用来标识对话框资源。强烈提议使用nDialogID而不是szDialogID来标识对话框资源。

nReserved

给该参数传递0。不允许其它值。

hwndOwner

指定主窗口的窗口句柄。将该参数指定为HWND_INSTALL来使得InstallShield主安装窗口成为对话框的主窗口。

lMsgLevel

该参数指定哪些窗口消息要被发送到该对话框。你必须用或操作符来将下列常量之一和常量DLG_CENTERED组合:

DLG_MSG_STANDARD:筛选掉大多数Windows消息;只有那些直接和对话框控件关联的被传递到对话框。

DLG_MSG_ALL :传递大多数Windows消息。

返回值:

0:DefineDialog成功定义对话框。

DLG_ERR_ALREADY_EXISTS (-3):你正试图定义一个已经由DefineDialog定义的对话框。你不能用相同的名称定义两个对话框。

DLG_ERR (-1):表示发生一个未确定的错误。

6.20 EndDialog

语法:EndDialog (szDialogName);

说明:EndDialog函数关闭一个自定义对话框。它删除对话框并启动对话框关闭进程。当下列任意一种情况存在时,使用EndDialog:

Next按扭或其等效已经被处理。

Cancel按扭或其等效已经被处理。

Close系统菜单选项已经被选定(该行为发送DLG_CLOSE消息)。

用户结束对话框操作的任何其它情况。

参数:

szDialogName

指定要关闭的对话框的名称。

返回值:

0:EndDialog成功关闭对话框。

< 0:EndDialog未能关闭对话框。

注解:

·在调用EndDialog关闭一个自定义对话框后,调用ReleaseDialog函数来释放与该自定义对话框关联的内存。

·只要你还没有调用ReleaseDialog来把对话框从内存删除,你可以就通过调用WaitOnDialog来重新显示一个已经由调用EndDialog关闭的自定义对话框。然而要注意,如果你调用WaitOnDialog来打开一个在你脚本中已经被打开和关闭的对话框时,你必须再次调用CmdGetHwndDlg来得到新句柄。老的句柄不再有效。

6.21 EzDefineDialog

语法:EzDefineDialog (szDialogName, szDLLName, szDialogID, nDialogID);

说明:EzDefineDialog函数定义一个自定义对话框。注意EzDefineDialog不显示自定义对话框。为显示一个自定义对话框,你必须调用WaitOnDialog。

参数:

szDialogName

指定和由szDialogID 或 nDialogID指定的对话框相关联的名称。为处理该对话框,在随后的对自定义对话框函数的调用中使用该名称。注意该对话框的名称是区分大小写的,你必须完全按照你在该参数指定的那样来使用它。

szDLLName

指定包含对话框资源的DLL文件的全限定名。如果你不指定一个路径,InstallShield在Windows 文件夹中查找该DLL。如果在那儿没有找到,InstallShield查找在查找路径中指定的文件夹。如果你用参数hInstance指定DLL的实例句柄,你可以给该参数传递一个空字符串。当对话框位于_isuser.dll时,你可以为该参数指定一个空字符串。如果该参数指定为一个空字符串,InstallShield将自动检测_isuser.dll。

szDialogID

如果你使用一个字符串(而不是一个数字)来标识对话框资源时,该参数指定资源ID。如果该参数是一个空字符串,nDialogID被用来标识对话框资源。强烈提议使用nDialogID而不是szDialogID来标识对话框资源。

nDialogID

如果你使用一个数字(而不是一个字符串)来标识对话框资源时,该参数指定资源ID。该参数只在szDialogID是一个空字符串时被使用。建议使用该参数而不是szDialogID来标识对话框资源。

返回值:

0:EzDefineDialog成功定义对话框。

DLG_ERR_ALREADY_EXISTS (-3):你正试图定义一个已经由EzDefineDialog定义的对话框。你不能用相同的名称定义两个对话框。

DLG_ERR (-1):表示发生一个未确定的错误。

6.22 GetFont

语法:GetFont (szFontName, nPointSize, nAttributes);

说明:GetFont函数建立一个字体并检索它的句柄,你可以使用字体句柄来指定在一个自定义对话框中的控件使用的字体。

参数:

szFontName

指定你要建立的字体的名称。

nPointSize

指定你要建立的字体的点数。

nAttributes

指定字体风格。在该参数位置传递下列预定义常量之一。可以用按位或操作符(|)组合常量来指定多种风格:

STYLE_BOLD:指定一个粗体风格的字体。

STYLE_ITALIC:指定斜体风格。

STYLE_NORMAL:指定一个正常的系统字体。

STYLE_UNDERLINE:指定字符被加下划线。

返回值:

XXXX:XXXX是该字体的句柄。

0:GetFont未能建立所要求的字体。

注解:

·当安装中止时,InstallShield将删除所有由该函数创建的字体。另外,中止时,InstallShield释放所有系统资源。

6.23 HIWORD

语法:HIWORD (lValue);

说明:HIWORD函数从由lValue指定的32位整型值中析取和返回高位字(高16位)。

参数:

lValue

指定要从中析取高16位的32位整数。

返回值:

HIWORD返回lValue的高位字(高16位)。

注解:

·InstallShield的 HIWORD因使用符号扩展而和相应的C的宏不同。因此,如果lValue是一个负数,则由HIWORD返回的值的高位字节用1填充。如有必要,你可以将结果和0xFFFF按位与(AND)来生成一个正数,如下所示:

lValue = HIWORD(lValue);

lValue = lValue & 0xFFFF;

6.24 LOWORD

语法:LOWORD (lValue);

说明:LOWORD函数从由lValue指定的32位整型值中析取和返回低位字(低16位)。

参数:

lValue

指定要从中析取低16位的32位整数。

返回值:

该函数返回整数的低位字(低16位)。

6.25 ReleaseDialog

语法:ReleaseDialog (szDialogName);

说明:ReleaseDialog 函数释放与szDialogName标识的自定义对话框相关联的所有内存。调用EndDialog后调用该函数。在消息处理的case语句外面调用该函数。

参数:

szDialogName

指定要消除的对话框的名称。

返回值:

0:表明函数成功释放和对话框相关联的所有内存。

DLG_ERR (-1):函数失败。对话框名可能是无效的。

DLG_ERR_ENDDLG (-2):在调用EndDialog前调用了ReleaseDialog。你必须首先调用EndDialog来删除对话框。

6.26 SdMakeName

语法:SdMakeName (svSection, szDlg, szUnused, nvDlgName);

说明:SdMakeName函数为一个对话框创建一个节名。该节名在向一个.iss文件写或从一个.iss文件中读时使用,.iss文件由InstallShield Silent使用。

参数:

svSection

指定节名。InstallShield使用变量szDlg 和 nvDlgName来给该变量置一个值。该值由SilentReadData 和SilentWriteData使用。

szDlg

指定对话框的名称,用来创建一个节名。

szUnused

该参数未用;给该参数传递一个空字符串。

nvDlgName

指定计数器,它记录针对szDlg指定的对话框而调用SdMakeName的次数。InstallShield自动递增该计数器。为每个自定义对话框使用一个唯一的变量名。(看下面的注解)

返回值:

无。

注解:

·为正确命名节,你必须为每个不同的自定义对话框在第四个参数使用一个唯一的变量名。要做到这一点的简单的方法是:使用szDlg的对话框名来命名变量。例如,当szDlg 是 "MyDlgOne"时,命名第四个参数的变量为nvMyDlgOne;当szDlg 是 "MyDlgTwo"时,命名变量为nvMyDlgTwo。

6.27 SilentReadData

语法:SilentReadData (szSection, szValName, nValType, svVal, nvVal);

说明:当一个安装运行于静止方式(silent mode)时(带-s开关运行Setup.exe时),SilentReadData函数指示InstallShield Silent如何为一个自定义对话框读取.iss文件对话框数据。注意你可以通过调用SilentWriteData来创建一个.iss文件。

为在你的脚本中使用SilentReadData,构造逻辑结构因而它首先检测来确认安装运行于静止方式。把SilentReadData函数的调用放置在一个测试系统变量MODE的if-else语句中,如下所示:

if (MODE=SILENTMODE) then

// 在此调用SilentReadData。

else

// 在此调用一个正常的,non-silent 函数。

endif;

自定义对话框可以是在你的安装脚本中使用函数(如EzDefineDialog 和WaitOnDialog)调用和处理的资源,也可以完全是外部的,如调用DLL中的函数一样被执行。另外一种情况是,你必须使用SilentReadData从.iss文件中检索对话框按扭的返回值(Next、Back、Cancel等等。)和在变量中被设置或返回的值。

参数:

szSection

指定.iss文件中的对话框数据的节的名称。不要包括方括号([ ])。参数szSection的格式为<functionname>-<number>,<functionname>是在脚本中使用的对话框函数名,<number>是在脚本中对话框出现的次数,从0开始。例如,MyDialog函数对话框的第一次出现会有一个szSection值"MyDialog-0",第二次出现则为"MyDialog-1",第三次为"MyDialog-2",如此继续。

szValName

指定出现在.iss文件的对话框数据的节中的值名。每个对话框至少有一个给szValName的值,来标识对话框按扭控件(BACK, NEXT 或 OK, 或 CANCEL)返回的值。其它值名用来标识和其它对话框控件相关联的值和数据。

nValType

标识赋给szValName中的值名的值的数据类型。值本身被保存在svVal 或 nvVal中,视nValType的值而定。在该参数位置传递下列预定义常量之一:

DATA_STRING:赋给szValName中的值名的值是STRING类型。它的值将保存在svValue中。

DATA_NUMBER:赋给szValName中的值名的值是NUMBER类型。它的值将保存在nvValue中。

DATA_COMPONENT:赋给szValName中的值名的值是一个组件名。它的值将保存在svValue中。

DATA_LIST:赋给szValName中的值名的值是一个InstallShield列表的列表ID。它的值将保存在nvValue中。

svVal

指定当nValType是 DATA_STRING 或DATA_COMPONENT时,赋给szValName中的值名的值。

nvVal

指定当nValType是DATA_NUMBER 或 DATA_LIST时,给szValName中的值名的值。

返回值:

0:SilentReadData成功指示InstallShield Silent如何为自定义对话框读取对话框数据。

< 0:SilentReadData未能指示InstallShield Silent如何为自定义对话框读取对话框数据。

注解:

下列情况下SilentReadData将失败(返回值小于0):

.iss文件未找到。

脚本中的对话框次序没有和.iss文件中指定的对话框次序完全匹配。

指定的对话框数据节在.iss文件中没有被找到。

指定的关键字名没有在指定的对话框数据节中找到。

赋给指定的关键字名的值的数据类型和在SilentReadData调用中指定的不匹配。

6.28 SilentWriteData

语法:SilentWriteData (szSection, szValName, nValType, szVal, nVal);

说明:SilentWriteData函数记录安装过程中自定义对话框中所作的选择。该选择数据被写到一个.iss文件中,供InstallShield Silent使用。为在一个安装过程中写写一个.iss文件,带-r开关项运行Setup.exe。

自定义对话框可以是在你的安装脚本中使用函数(如EzDefineDialog 和WaitOnDialog)调用和处理的资源,也可以完全是外部的,如调用DLL中的函数一样被执行。另外一种情况是,你必须使用SilentReadData从.iss文件中检索对话框按扭的返回值(Next, Back, Cancel,等等。)和在变量中被设置或返回的值。

参数:

与SilentReadData函数的参数相同。

返回值:

0:SilentReadData成功写自定义对话框的对话框数据到Setup.iss中。

< 0:SilentReadData未能写自定义对话框的对话框数据到Setup.iss中。

6.29 WaitOnDialog

语法:WaitOnDialog (szDlgName);

说明:WaitOnDialog函数显示一个自定义对话框。你的脚本可以根据该函数的返回值来处理用户的不同响应。

参数:

szDlgName

指定要显示的对话框的ID。

返回值:

dialog控件ID:接收到WM_COMMAND消息的对话框控件的ID。

DLG_CLOSE (-200):该消息作为对话框将要被关闭的信号。

DLG_ERR (-1):如果发生任何错误,则接收到该消息。

DLG_INIT (-100):就在对话框要被显示前接收到该消息。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有