Inno setup 可以使用ISPP在Inno设置中自动创建这些脚本行吗?

Inno setup 可以使用ISPP在Inno设置中自动创建这些脚本行吗?,inno-setup,pascalscript,Inno Setup,Pascalscript,我有以下ISPP定义: ; Language combo index values #define MDB_AFK_INDEX "0" #define MDB_TWI_INDEX "1" #define MDB_DAN_INDEX "2" #define MDB_DEU_INDEX "3" #define MDB_ENG_INDEX "4" #define MDB_ESP_INDEX "5" #define MDB_FRA_INDEX "6" #define MDB_IND_INDEX "7"

我有以下ISPP定义:

; Language combo index values
#define MDB_AFK_INDEX "0"
#define MDB_TWI_INDEX "1"
#define MDB_DAN_INDEX "2"
#define MDB_DEU_INDEX "3"
#define MDB_ENG_INDEX "4"
#define MDB_ESP_INDEX "5"
#define MDB_FRA_INDEX "6"
#define MDB_IND_INDEX "7"
#define MDB_ITA_INDEX "8"
#define MDB_SWK_INDEX "9"
#define MDB_NLD_INDEX "10"
#define MDB_PLK_INDEX "11"
#define MDB_PTB_INDEX "12"
#define MDB_RUS_INDEX "13"
#define MDB_SQI_INDEX "14"
#define MDB_FIN_INDEX "15"
#define MDB_SRN_INDEX "16"
#define MDB_SVE_INDEX "17"
#define MDB_FPO_INDEX "18"
#define MDB_TRK_INDEX "19"
#define MDB_CHS_INDEX "20"
#define MDB_BGR_INDEX "21"
#define MDB_ELL_INDEX "22"
#define MDB_UKR_INDEX "23"
#define MDB_KHM_INDEX "24"
#define MDB_ROM_INDEX "25"
#define MDB_SMO_INDEX "26"
#define MDB_VIT_INDEX "27"
#define MDB_ARA_INDEX "28"
我有一个Pascal代码检查功能:

{如果用户在组合中选择了相同的数据库语言,则返回True}
函数CheckMDBLang(iMDBLangIndex:integer):布尔值;
开始
结果:=(cbDatabase.ItemIndex=iMDBLangIndex);
结束;
以下是使用上述脚本的当前脚本文件:

; default database
Source: "..\inno\Databases\English.mdb"; DestDir: "{app}"; DestName: "Default.mdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_ENG_INDEX})
Source: "..\inno\Databases\Spanish.mdb"; DestDir: "{app}"; DestName: "Default.mdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_ESP_INDEX})
Source: "..\inno\Databases\German.mdb"; DestDir: "{app}"; DestName: "Default.mdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_DEU_INDEX})
Source: "..\inno\Databases\Italian.mdb"; DestDir: "{app}"; DestName: "Default.mdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_ITA_INDEX})
Source: "..\inno\Databases\Dutch.mdb"; DestDir: "{app}"; DestName: "Default.mdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_NLD_INDEX})
Source: "..\inno\Databases\Turkish.mdb"; DestDir: "{app}"; DestName: "Default.mdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_TRK_INDEX})
Source: "..\inno\Databases\Portuguese.mdb"; DestDir: "{app}"; DestName: "Default.mdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_PTB_INDEX})
Source: "..\inno\Databases\Swedish.mdb"; DestDir: "{app}"; DestName: "Default.mdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_SVE_INDEX})
Source: "..\inno\Databases\Danish.mdb"; DestDir: "{app}"; DestName: "Default.mdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_DAN_INDEX})
Source: "..\inno\Databases\Russian.mdb"; DestDir: "{app}"; DestName: "Default.mdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_RUS_INDEX})
Source: "..\inno\Databases\Finnish.mdb"; DestDir: "{app}"; DestName: "Default.mdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_FIN_INDEX})
Source: "..\inno\Databases\Afrikaans.mdb"; DestDir: "{app}"; DestName: "Default.mdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_AFK_INDEX})
Source: "..\inno\Databases\Chinese Simplified.mdb"; DestDir: "{app}"; DestName: "Default.mdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_CHS_INDEX})
Source: "..\inno\Databases\Albanian.mdb"; DestDir: "{app}"; DestName: "Default.mdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_SQI_INDEX})
Source: "..\inno\Databases\French.mdb"; DestDir: "{app}"; DestName: "Default.mdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_FRA_INDEX})
Source: "..\inno\Databases\Bulgarian.mdb"; DestDir: "{app}"; DestName: "Default.mdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_BGR_INDEX})
Source: "..\inno\Databases\Twi.mdb"; DestDir: "{app}"; DestName: "Default.mdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_TWI_INDEX})
Source: "..\inno\Databases\Tagalog.mdb"; DestDir: "{app}"; DestName: "Default.mdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_FPO_INDEX})
Source: "..\inno\Databases\Swahili.mdb"; DestDir: "{app}"; DestName: "Default.mdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_SWK_INDEX})
Source: "..\inno\Databases\Greek.mdb"; DestDir: "{app}"; DestName: "Default.mdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_ELL_INDEX})
Source: "..\inno\Databases\Ukrainian.mdb"; DestDir: "{app}"; DestName: "Default.mdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_UKR_INDEX})
Source: "..\inno\Databases\Cambodian.mdb"; DestDir: "{app}"; DestName: "Default.mdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_KHM_INDEX})
Source: "..\inno\Databases\Romanian.mdb"; DestDir: "{app}"; DestName: "Default.mdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_ROM_INDEX})
Source: "..\inno\Databases\Samoan.mdb"; DestDir: "{app}"; DestName: "Default.mdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_SMO_INDEX})
Source: "..\inno\Databases\Indonesian.mdb"; DestDir: "{app}"; DestName: "Default.mdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_IND_INDEX})
Source: "..\inno\Databases\Vietnamese.mdb"; DestDir: "{app}"; DestName: "Default.mdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_VIT_INDEX})
Source: "..\inno\Databases\Arabic.mdb"; DestDir: "{app}"; DestName: "Default.mdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_ARA_INDEX})
Source: "..\inno\Databases\Polish.mdb"; DestDir: "{app}"; DestName: "Default.mdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_PLK_INDEX})
Source: "..\inno\Databases\Srnantongo.mdb"; DestDir: "{app}"; DestName: "Default.mdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_SRN_INDEX})

; default database (ACCDB format)
Source: "..\inno\Databases\English.accdb"; DestDir: "{app}"; DestName: "Default.accdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_ENG_INDEX})
Source: "..\inno\Databases\Spanish.accdb"; DestDir: "{app}"; DestName: "Default.accdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_ESP_INDEX})
Source: "..\inno\Databases\German.accdb"; DestDir: "{app}"; DestName: "Default.accdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_DEU_INDEX})
Source: "..\inno\Databases\Italian.accdb"; DestDir: "{app}"; DestName: "Default.accdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_ITA_INDEX})
Source: "..\inno\Databases\Dutch.accdb"; DestDir: "{app}"; DestName: "Default.accdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_NLD_INDEX})
Source: "..\inno\Databases\Turkish.accdb"; DestDir: "{app}"; DestName: "Default.accdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_TRK_INDEX})
Source: "..\inno\Databases\Portuguese.accdb"; DestDir: "{app}"; DestName: "Default.accdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_PTB_INDEX})
Source: "..\inno\Databases\Swedish.accdb"; DestDir: "{app}"; DestName: "Default.accdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_SVE_INDEX})
Source: "..\inno\Databases\Danish.accdb"; DestDir: "{app}"; DestName: "Default.accdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_DAN_INDEX})
Source: "..\inno\Databases\Russian.accdb"; DestDir: "{app}"; DestName: "Default.accdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_RUS_INDEX})
Source: "..\inno\Databases\Finnish.accdb"; DestDir: "{app}"; DestName: "Default.accdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_FIN_INDEX})
Source: "..\inno\Databases\Afrikaans.accdb"; DestDir: "{app}"; DestName: "Default.accdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_AFK_INDEX})
Source: "..\inno\Databases\Chinese Simplified.accdb"; DestDir: "{app}"; DestName: "Default.accdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_CHS_INDEX})
Source: "..\inno\Databases\Albanian.accdb"; DestDir: "{app}"; DestName: "Default.accdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_SQI_INDEX})
Source: "..\inno\Databases\French.accdb"; DestDir: "{app}"; DestName: "Default.accdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_FRA_INDEX})
Source: "..\inno\Databases\Bulgarian.accdb"; DestDir: "{app}"; DestName: "Default.accdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_BGR_INDEX})
Source: "..\inno\Databases\Twi.accdb"; DestDir: "{app}"; DestName: "Default.accdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_TWI_INDEX})
Source: "..\inno\Databases\Tagalog.accdb"; DestDir: "{app}"; DestName: "Default.accdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_FPO_INDEX})
Source: "..\inno\Databases\Swahili.accdb"; DestDir: "{app}"; DestName: "Default.accdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_SWK_INDEX})
Source: "..\inno\Databases\Greek.accdb"; DestDir: "{app}"; DestName: "Default.accdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_ELL_INDEX})
Source: "..\inno\Databases\Ukrainian.accdb"; DestDir: "{app}"; DestName: "Default.accdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_UKR_INDEX})
Source: "..\inno\Databases\Cambodian.accdb"; DestDir: "{app}"; DestName: "Default.accdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_KHM_INDEX})
Source: "..\inno\Databases\Romanian.accdb"; DestDir: "{app}"; DestName: "Default.accdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_ROM_INDEX})
Source: "..\inno\Databases\Samoan.accdb"; DestDir: "{app}"; DestName: "Default.accdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_SMO_INDEX})
Source: "..\inno\Databases\Indonesian.accdb"; DestDir: "{app}"; DestName: "Default.accdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_IND_INDEX})
Source: "..\inno\Databases\Vietnamese.accdb"; DestDir: "{app}"; DestName: "Default.accdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_VIT_INDEX})
Source: "..\inno\Databases\Arabic.accdb"; DestDir: "{app}"; DestName: "Default.accdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_ARA_INDEX})
Source: "..\inno\Databases\Polish.accdb"; DestDir: "{app}"; DestName: "Default.accdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_PLK_INDEX})
Source: "..\inno\Databases\Srnantongo.accdb"; DestDir: "{app}"; DestName: "Default.accdb"; Flags: overwritereadonly uninsremovereadonly; Attribs: readonly; Check: CheckMDBLang({#MDB_SRN_INDEX})
是否可以使用ISPP自动创建这些脚本行


更新 根据注释,
cbDatabase
是自定义页面的一部分。这就是我目前的情况:

函数AppSettings\u CreatePage(PreviousPageId:Integer):整数;
变量
页面:TWizardPage;
iUserValue:基数;
strPath:String;
开始
页面:=创建自定义页面(
前页ID,
ExpandConstant({cm:ApplicationPreferences}'),
ExpandConstant(“{cm:DefaultSettings}”)
);
{lblInfo}
lblInfo:=TLabel.Create(第页);
用lblinfodo
开始
父项:=页面表面;
标题:=ExpandConstant(“{cm:SpecifiedFaultSettings}”);
左:=ScaleX(8);
顶部:=ScaleY(8);
宽度:=ScaleX(387);
高度:=斯卡利(29);
结束;
{chkremberlastcong}
chkremberlastcong:=TCheckBox.Create(第页);
和Chkremberlastcong do
开始
父项:=页面表面;
标题:=ExpandConstant({cm:UserMemberCongregation}');
左:=ScaleX(8);
顶部:=ScaleY(32);
宽度:=ScaleX(385);
高度:=ScaleY(25);
TabOrder:=0;
{设置默认值(当注册表值不存在时)}
iUserValue:=1;
{获取注册表值}
RegQueryWordValue(HKLM,
“软件\社区对话\公共对话\首选项”,
“重用”,iUserValue);
{第页上的更新选项。}
选中:=iUserValue=1;
结束;
{chkDuplicates}
chkDuplicates:=TCheckBox.Create(第页);
有CHKD副本吗
开始
父项:=页面表面;
标题:=ExpandConstant(“{cm:UserCheckDuplicates}”);
左:=ScaleX(8);
顶部:=ScaleY(56);
宽度:=ScaleX(393);
高度:=ScaleY(17);
TabOrder:=1;
{设置默认值(当注册表值不存在时)}
iUserValue:=0;{Default}
{获取注册表值}
RegQueryWordValue(HKLM,
“软件\社区对话\公共对话\首选项”,
“重复”,iUserValue);
{第页上的更新选项。}
选中:=iUserValue=1;
结束;
{lblDatabase}
lblDatabase:=TLabel.Create(第页);
使用lblDatabase do
开始
父项:=页面表面;
标题:=ExpandConstant(“{cm:DatabaseLanguage}”);
左:=ScaleX(8);
顶部:=ScaleY(112);
宽度:=ScaleX(385);
高度:=ScaleY(13);
结束;
{cbDatabase}
cbDatabase:=TNewComboBox.Create(第页);
用cbDatabase做什么
开始
父项:=页面表面;
左:=ScaleX(8);
顶部:=ScaleY(128);
宽度:=ScaleX(177);
高度:=ScaleY(21);
样式:=csDropDownList;
TabOrder:=3;
{语言}
项目.添加({LANG#u AFK});
项目.添加({LANG#u TWI});
项目.增加({LANG#u DAN});
项目.添加({LANG#u DEU});
项目.添加({LANG#u ENG});
添加({LANG#u ESP});
项目.增加({{LANG#u FRA});
项目.添加({LANG#u IND});
项目.添加({LANG#u ITA});
项目.添加({LANG#u SWK});
添加({LANG#u NLD});
项目.添加({LANG#PLK});
项目.添加({LANG#u PTB});
项目.增加({LANG#u RUS});
项目.添加({LANG#u SQI});
项目.添加({{LANG#u FIN});
项目.添加({LANG#u SRN});
添加({LANG#u SVE});
项目.增加({LANG#u FPO});
添加({LANG#TRK});
项目.添加({LANG#u CHS});
项目.添加({LANG#u BGR});
项目.增加({{LANG#uell});
项目.添加({LANG#u UKR});
项目.增加({LANG#u KHM});
项目.添加({LANG#u ROM});
项目.添加({LANG#u SMO});
项目.添加({{LANG#u VIT});
项目.增加({{LANG#u ARA});
{获取程序上次安装的路径}
strPath:=GetPathInstalled('Public Talks');
{南非荷兰语没有专门的语言}
{简体中文没有专用语言}
{保加利亚语没有专门的语言}
{Twi没有专用语言}
{斯瓦希里语没有专门的语言}
{乌克兰语没有专门的语言}
{柬埔寨没有专门的语言}
{萨摩亚没有专门的语言}
{印度尼西亚没有专门的语言}
{越南语没有专门的语言}
{阿拉伯语没有专用语言}
{波兰语没有专门的语言}
{Srnantongo没有专门的语言}
如果ActiveLanguage='English',则ItemIndex:={{MDB#u ENG_INDEX};
如果ActiveLanguage='German',则ItemIndex:={{MDB#u DEU__INDEX};
如果ActiveLanguage='Spanish',则ItemIndex:={{MDB#u ESP_INDEX};
如果ActiveLanguage='意大利语',则ItemIndex:={{MDB#u itau_INDEX};
如果ActiveLanguage='Dutch',则ItemIndex:={{MDB#u NLD_INDEX};
如果ActiveLanguage='Turkish',则ItemIndex:={{MDB#u TRK_INDEX};
如果ActiveLanguage='葡萄牙语',则ItemIndex:={{MDB#u PTB_INDEX};
如果ActiveLanguage='Swedish',则ItemIndex:={{MDB#u SVE_INDEX};
如果ActiveLanguage='Danish',则ItemIndex:={{MDB#u DAN_INDEX};
如果ActiveLanguage='Russian',则ItemIndex:={{MDB#u RUS_INDEX};
如果ActiveLanguage='Finnish',则ItemIndex:={{MDB#u FIN_INDEX};
如果ActiveLanguage='Albanian',那么ItemIndex:={MDB#u SQI_INDEX};
如果ActiveLanguage='French',则ItemIndex:={{MDB#u FRA_INDEX};
如果ActiveLanguage='Greek',则ItemIndex:={#
; Language descriptions
#define LANG_ENG "'English'"
#define LANG_ESP "'Español'"
#define LANG_DEU "'Deutsch'"
#define LANG_ITA "'Italiano'"
#define LANG_NLD "'Nederlands'"
#define LANG_TRK "'Türkçe'"
#define LANG_PTB "'Português'"
#define LANG_SVE "'Svenska'"
#define LANG_DAN "'Dansk'"
#define LANG_RUS "'Русский'"
#define LANG_FIN "'Suomi'"
#define LANG_AFK "'Afrikaans'"
#define LANG_CHS "'汉语(简化字)'"
#define LANG_SQI "'Shqip'"
#define LANG_FRA "'Française'"
#define LANG_BGR "'Български'"
#define LANG_TWI "'Akan'"
#define LANG_FPO "'Tagalog'"
#define LANG_SWK "'Kiswahili'"
#define LANG_ELL "'Ελληνική'"
#define LANG_UKR "'Українська'"
#define LANG_KHM "'Cambodian'"
#define LANG_ROM "'Română'"
#define LANG_SMO "'Faa-Sāmoa'"
#define LANG_IND "'Indonesia'"
#define LANG_VIT "'Vietnamese'"
#define LANG_ARA "'العربية'"
#define LANG_PLK "'Polski'"
#define LANG_SRN "'Sranantongo'"