2023-11-13 20:30:36 +08:00
|
|
|
|
; 脚本由 Inno Setup 脚本向导 生成!
|
|
|
|
|
; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档!
|
|
|
|
|
|
|
|
|
|
#define MyAppName "我的程序"
|
|
|
|
|
#define MyAppVersion "1.5"
|
|
|
|
|
#define MyAppPublisher "我的公司"
|
|
|
|
|
#define MyAppURL "http://www.example.com/"
|
|
|
|
|
#define MyAppExeName "MyProg.exe"
|
|
|
|
|
|
|
|
|
|
[Setup]
|
|
|
|
|
; 注: AppId的值为单独标识该应用程序。
|
|
|
|
|
; 不要为其他安装程序使用相同的AppId值。
|
|
|
|
|
; (若要生成新的 GUID,可在菜单中点击 "工具|生成 GUID"。)
|
|
|
|
|
AppId={{0D5BFA20-02BB-46D0-A603-2638F085F72B}
|
|
|
|
|
AppName={#MyAppName}
|
|
|
|
|
AppVersion={#MyAppVersion}
|
|
|
|
|
;AppVerName={#MyAppName} {#MyAppVersion}
|
|
|
|
|
AppPublisher={#MyAppPublisher}
|
|
|
|
|
AppPublisherURL={#MyAppURL}
|
|
|
|
|
AppSupportURL={#MyAppURL}
|
|
|
|
|
AppUpdatesURL={#MyAppURL}
|
|
|
|
|
DefaultDirName={autopf}\{#MyAppName}
|
|
|
|
|
DisableProgramGroupPage=yes
|
|
|
|
|
DisableReadyPage=yes
|
|
|
|
|
DisableReadyMemo=yes
|
|
|
|
|
ShowLanguageDialog=false
|
|
|
|
|
LicenseFile=D:\Code\gitea\InnoSetup\MyProg\license.txt
|
|
|
|
|
InfoBeforeFile=D:\Code\gitea\InnoSetup\MyProg\install_before.txt
|
|
|
|
|
InfoAfterFile=D:\Code\gitea\InnoSetup\MyProg\install_after.txt
|
|
|
|
|
; 移除以下行,以在管理安装模式下运行(为所有用户安装)。
|
|
|
|
|
PrivilegesRequired=lowest
|
|
|
|
|
PrivilegesRequiredOverridesAllowed=dialog
|
|
|
|
|
OutputDir=D:\Code\gitea\InnoSetup\MyProg\Out
|
|
|
|
|
OutputBaseFilename=mysetup
|
|
|
|
|
Compression=lzma
|
|
|
|
|
SolidCompression=yes
|
|
|
|
|
WizardStyle=modern
|
|
|
|
|
|
|
|
|
|
[Languages]
|
|
|
|
|
Name: "chinesesimp"; MessagesFile: "compiler:Default.isl"
|
|
|
|
|
Name: "english"; MessagesFile: "compiler:Languages\English.isl"
|
|
|
|
|
|
|
|
|
|
[Tasks]
|
|
|
|
|
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
|
|
|
|
|
|
|
|
|
|
[Files]
|
|
|
|
|
Source: "C:\Program Files (x86)\Inno Setup 6\Examples\MyProg.exe"; DestDir: "{app}"; Flags: ignoreversion
|
|
|
|
|
; 注意: 不要在任何共享系统文件上使用“Flags: ignoreversion”
|
2023-11-13 22:14:18 +08:00
|
|
|
|
;包含所有临时资源文件(勿删)
|
|
|
|
|
Source: ".\resources\*"; DestDir: "{tmp}"; Flags: dontcopy solidbreak nocompression; Attribs: hidden system
|
2023-11-13 20:30:36 +08:00
|
|
|
|
|
|
|
|
|
[Icons]
|
|
|
|
|
Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
|
|
|
|
|
Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
|
|
|
|
|
|
|
|
|
|
[Run]
|
|
|
|
|
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
|
|
|
|
|
|
|
|
|
|
[Code]
|
2023-11-13 22:14:18 +08:00
|
|
|
|
CONST
|
|
|
|
|
//PRODUCT_REGISTRY_KEY_32 = 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#MyAppID}_is1';
|
|
|
|
|
//PRODUCT_REGISTRY_KEY_64 = 'SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{#MyAppID}_is1';
|
|
|
|
|
WM_SYSCOMMAND = $0112;
|
|
|
|
|
ID_BUTTON_ON_CLICK_EVENT = 1;
|
|
|
|
|
WIZARDFORM_WIDTH_NORMAL = 600;
|
|
|
|
|
WIZARDFORM_HEIGHT_NORMAL = 400;
|
|
|
|
|
WIZARDFORM_HEIGHT_MORE = 470;
|
|
|
|
|
|
|
|
|
|
VAR
|
|
|
|
|
CreateShortcutCb: TNewCheckBox;
|
|
|
|
|
StartWithWinCb: TNewCheckBox;
|
|
|
|
|
AgreeTextCb: TNewCheckBox;
|
|
|
|
|
|
|
|
|
|
procedure CreateShortcutCbClick(Sender: TObject);
|
|
|
|
|
begin
|
|
|
|
|
// 在这里处理复选框的选择变化事件
|
|
|
|
|
if CreateShortcutCb.Checked then
|
|
|
|
|
MsgBox('复选框被选中了。', mbInformation, MB_OK)
|
|
|
|
|
else
|
|
|
|
|
MsgBox('复选框被取消选中了。', mbInformation, MB_OK);
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure CreateShortcutCbCreate(Sender: TObject);
|
|
|
|
|
begin
|
|
|
|
|
// 在控件创建时设置字体颜色
|
|
|
|
|
TNewCheckBox(Sender).Font.Color := clWhite;
|
|
|
|
|
end;
|
2023-11-13 20:30:36 +08:00
|
|
|
|
|
|
|
|
|
PROCEDURE CurPageChanged(CurPageID : INTEGER);
|
|
|
|
|
BEGIN
|
2023-11-13 22:14:18 +08:00
|
|
|
|
if CurPageID = wpWelcome then
|
|
|
|
|
BEGIN
|
|
|
|
|
CreateShortcutCb := TNewCheckBox.Create(WizardForm);
|
|
|
|
|
CreateShortcutCb.Parent := WizardForm;
|
|
|
|
|
CreateShortcutCb.Left := 20;
|
|
|
|
|
CreateShortcutCb.Top := 120;
|
|
|
|
|
CreateShortcutCb.Caption := '我同意安装此软件';
|
|
|
|
|
CreateShortcutCb.Font.Color := clWhite;
|
|
|
|
|
CreateShortcutCb.OnClick := @CreateShortcutCbClick;
|
|
|
|
|
CreateShortcutCb.Refresh;
|
|
|
|
|
END;
|
2023-11-13 20:30:36 +08:00
|
|
|
|
END;
|
|
|
|
|
|
|
|
|
|
//指定跳过哪些标准页面
|
|
|
|
|
FUNCTION ShouldSkipPage(PageID : INTEGER) : BOOLEAN;
|
|
|
|
|
BEGIN
|
|
|
|
|
IF (PageID = wpLicense) THEN Result := TRUE;
|
|
|
|
|
IF (PageID = wpPassword) THEN Result := TRUE;
|
|
|
|
|
IF (PageID = wpInfoBefore) THEN Result := TRUE;
|
|
|
|
|
IF (PageID = wpUserInfo) THEN Result := TRUE;
|
|
|
|
|
IF (PageID = wpSelectDir) THEN Result := TRUE;
|
|
|
|
|
IF (PageID = wpSelectComponents) THEN Result := TRUE;
|
|
|
|
|
IF (PageID = wpSelectProgramGroup) THEN Result := TRUE;
|
|
|
|
|
IF (PageID = wpSelectTasks) THEN Result := TRUE;
|
|
|
|
|
IF (PageID = wpReady) THEN Result := TRUE;
|
|
|
|
|
IF (PageID = wpPreparing) THEN Result := TRUE;
|
|
|
|
|
IF (PageID = wpInfoAfter) THEN Result := TRUE;
|
|
|
|
|
END;
|
|
|
|
|
|
|
|
|
|
|
2023-11-13 22:14:18 +08:00
|
|
|
|
procedure InitializeWizard();
|
2023-11-13 20:30:36 +08:00
|
|
|
|
begin
|
2023-11-13 22:14:18 +08:00
|
|
|
|
WizardForm.InnerNotebook.Hide();
|
|
|
|
|
WizardForm.OuterNotebook.Hide();
|
|
|
|
|
WizardForm.Bevel.Hide();
|
|
|
|
|
WITH WizardForm DO
|
|
|
|
|
BEGIN
|
|
|
|
|
BorderStyle := bsNone;
|
|
|
|
|
Position := poScreenCenter;
|
|
|
|
|
Width := WIZARDFORM_WIDTH_NORMAL;
|
|
|
|
|
Height := WIZARDFORM_HEIGHT_MORE;
|
|
|
|
|
Color := clRed;
|
|
|
|
|
NextButton.Height := 0;
|
|
|
|
|
CancelButton.Height := 0;
|
|
|
|
|
BackButton.Visible := FALSE;
|
|
|
|
|
END;
|
2023-11-13 20:30:36 +08:00
|
|
|
|
end;
|
|
|
|
|
|