1.安装协议对话框代码(其中license.txt是安装协议内容)
Dlg_Start:
// beginning of dialogs label
Dlg_SdWelcome:
szTitle = "xx系统";
szMsg = "安装程序即将在本机上安装xx系统,确定是否继续安装?继续请按【下一步(next)】";
nResult = SdWelcome( szTitle, szMsg );
if (nResult = BACK) goto Dlg_Start;Dlg_SdLicense:
szLicenseFile = SUPPORTDIR ^ "license.txt";
szTitle = "xx系统";
szMsg = "";
szQuestion = "您是否接受该协议?接受请按【是(Yes)】。继续安装必须接受该协议。";
nResult = SdLicense( szTitle, szMsg, szQuestion, szLicenseFile );
if (nResult = BACK) goto Dlg_SdWelcome;
2.用户信息对话框(其中序列号checkString是上篇中,安装程序根据磁盘序列及 我们设置的编码规则生成的字符串)
Dlg_SdShowInfoList:
szTitle = "系统本地编号";
szMsg = "将下面的本地编号发送给权限授予机构,在接收到相应的注册码后,您将进行继续注册!";
szField1 = "编号";
svEdit1 = localNum;
nResult = SdShowDlgEdit1(szTitle, szMsg,szField1, svEdit1);
if (nResult = BACK) goto Dlg_SdWelcome;
Dlg_SdRegisterUserEx:
szMsg = "";
szTitle = "";
nResult = SdRegisterUserEx( szTitle, szMsg, szName, szCompany, szSerial );
if (nResult = BACK) goto Dlg_SdShowInfoList;
if (szSerial != checkString) then
MessageBox( "错误!", SEVERE);
goto Dlg_SdRegisterUserEx;
endif;
ListDestroy( list );
if (nResult = BACK) goto Dlg_SdLicense;
3.选择安装路径(包括判断磁盘容量)
Dlg_SdAskDestPath: szTitle = "";
szMsg = "";
svTemp = szDir;
nResult = SdAskDestPath( szTitle, szMsg, szDir, 0 );
if ( svTemp != szDir) then
szDir = szDir^@COMPANY_NAME ^@PRODUCT_NAME;
endif;
TARGETDIR = szDir;
GetDisk (szDir, svDrive);
lFreeSpace = GetDiskSpace (svDrive);
if (lFreeSpace < 209715200) then
MessageBox("警告:安装路径所在的磁盘空间不足200M!请重新选择!",SEVERE);
goto Dlg_SdAskDestPath;
endif;
if (nResult = BACK) goto Dlg_SdRegisterUserEx;
4.安装类型对话框
Dlg_SetupType:
szTitle = "xx系统";
szMsg = "";
nResult = SetupType ( szTitle , szMsg , "" , nSetupType , 0 );
if (nResult = BACK) then
//goto Dlg_SdAskDestPath;
goto Dlg_SdRegisterUserEx
else
nSetupType = nResult;
if (nSetupType != CUSTOM) then
szTargetPath = TARGETDIR;
nvSize = 0;
ComponentCompareSizeRequired(MEDIA,szTargetPath,nvSize);
if (nvSize != 0) then
MessageBox( szSdStr_NotEnoughSpace, WARNING );
goto Dlg_SetupType;
endif;
endif;
endif;