有没有办法让 Inno Setup 脚本包含创建自定义页面和外部 .isi 文件的代码(我正在使用 ISSI 加载项。)如果我尝试同时使用这两者,我会收到错误消息“重复标识符:INITIALIZEWIZARD”,因为(显然)标识符出现在我的主脚本和加载项中。
这里(不完整!)是我想用来创建自定义页面的代码(我几乎完全从 Inno Setup 提供的示例中获取它:
procedure CreateTheWizardPages;
var
Page: TWizardPage;
RichEditViewer: TRichEditViewer;
vDosFolder: String;
begin
if RegQueryStringValue(HKEY_CURRENT_USER, 'Software\WPDOS.org','vDosDir', vDosFolder) then
begin
if ((DirExists(vDosFolder + '\62Config')) OR (DirExists(vDosFolder + '\61Config')) OR (DirExists(vDosFolder + '\51Config'))) then
begin
Page := CreateCustomPage(wpInfoBefore, 'Existing installation found', 'Read this message!');
RichEditViewer := TRichEditViewer.Create(Page);
RichEditViewer.Width := Page.SurfaceWidth;
RichEditViewer.Height := Page.SurfaceHeight;
RichEditViewer.Parent := Page.Surface;
RichEditViewer.ScrollBars := ssVertical;
RichEditViewer.UseRichEdit := True;
RichEditViewer.RTFText := '{\rtf1\ansi\ansicpg1252\deff0\deflang1043{\fonttbl{\f0\fswiss\fcharset0 Arial;}}{\colortbl ;\red255\green0\blue0;\red0\green128\blue0;\red0\green0\blue128;}\viewkind4\uc1\pard\f0\fs20 R\cf1 ead\cf2 This\cf3 Message!\cf0\par}';
RichEditViewer.ReadOnly := True;
end;
end;
end;
procedure InitializeWizard();
begin
CreateTheWizardPages;
end;
我还想做的(如果可能的话)是我们使用 ISSI 插件在向导的状态栏上放置一个可点击的链接,但是如果我包含此代码,我会收到错误消息:
[ISSI]
#define ISSI_English
#define ISSI_URL
#define ISSI_URLText
#define ISSI_IncludePath "X:\ISSI"
#include ISSI_IncludePath+"\_issi.isi"
另外,当然,自定义消息中的某些行说明了 ISSI 应该显示的内容。
如果有任何方法可以同时拥有这两种东西,我会很感激听到它。