Обратите внимание, что я новичок в Inno Setup. В настоящее время у меня есть следующее:
Installation language selection (1) -> Select additional tasks (2) -> Ready to install (3) -> Installing (4) -> Click finish to exit Setup. (5)
Я хочу добиться, чтобы пользователю предлагалось ввести Additional tasks (2)
после Installing (4)
. У меня есть флажки Create a desktop shortcut
и Launch application
в дополнительных задачах.
Вот сценарий, который я использую для создания настройки (с заменой различных вещей на фиктивные данные, поскольку я не могу их раскрыть).
#define MyAppName "My App"
#define MyAppExeName "MyApp.exe"
#define MyAppVersion "1.0"
#define MyAppPublisher "MyCompanyName"
[Setup]
AppId={{someId}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
DefaultDirName={autopf}\{#MyAppName}
DefaultGroupName={#MyAppName}
DisableProgramGroupPage=yes
OutputBaseFilename=My App
SetupIconFile=C:\MyApp\logo.ico
Compression=lzma
SolidCompression=yes
WizardStyle=modern
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"
Name: StartAfterInstall; Description: Launch application; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "ukrainian"; MessagesFile: "compiler:Languages\Ukrainian.isl"
[Files]
Source: "C:\Users\myuser\MyApp\bin\Release\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
[Icons]
Name: "{userdesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
[Run]
Filename: {app}\{#MyAppExeName}; Flags: shellexec skipifsilent nowait; Tasks: StartAfterInstall
Обновление:
Изменение моего раздела [Run]
на это:
Filename: {app}\{#MyAppExeName}; Flags: shellexec skipifsilent nowait; AfterInstall: CreateIcon
и добавление раздела [Code]
следующим образом:
[Code]
procedure CreateIcon;
var
IconFileName: string;
begin
IconFileName := ExpandConstant('{commondesktop}\DashBoard.lnk');
CreateShellLink(
IconFileName, '',
ExpandConstant('{app}\{#MyAppExeName}'),
'', ExpandConstant('{app}'),
ExpandContant('{app}\logo.ico'), 0, SW_SHOWNORMAL);
end;
не добавлял флажок на последнем шаге настройки.
Я пробовал добавить ChangesAssociations=yes
в конец моего раздела [Setup]
без добавления флажка.
После этого я подумал, что могу использовать тот же метод, которым мне удалось добавить флажок для запуска приложения на последнем шаге настройки.
Итак, пытаюсь добавить второй флажок, например:
[Run]
Filename: {app}\{cm:AppName}.exe; Description: {cm:LaunchProgram,cm:AddShortcut,{cm:AppName}}; Flags: nowait postinstall skipifsilent
[CustomMessages]
AppName=MyApp
LaunchProgram=Start MyApp after finishing installation
AddShortcut=Add desktop shortcut
оставляет мне только один флажок вместо двух.
Могу я просто сказать, что перед добавлением второго флажка это было так:
[Run]
Filename: {app}\{cm:AppName}.exe; Description: {cm:LaunchProgram,{cm:AppName}}; Flags: nowait postinstall skipifsilent
[CustomMessages]
AppName=MyApp
LaunchProgram=Start MyApp after finishing installation
Если еще необходима информация - дайте мне знать.
Обновление:
Вот последняя версия s cript:
#define MyAppName "MyApp"
#define MyAppExeName "MyApp.exe"
#define MyAppVersion "1.0"
#define MyAppPublisher "MyCompany"
[Setup]
AppId={{678F2A68-E028-46F0-A18C-0A47135A98E8}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppPublisher={#MyAppPublisher}
DefaultDirName={autopf}\{#MyAppName}
DefaultGroupName={#MyAppName}
DisableProgramGroupPage=yes
OutputBaseFilename=MyApp
SetupIconFile=C:\Users\myuser\Projects\MyApp\logo.ico
Compression=lzma
SolidCompression=yes
WizardStyle=modern
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "ukrainian"; MessagesFile: "compiler:Languages\Ukrainian.isl"
[Files]
Source: "C:\Users\myuser\Projects\MyApp\bin\Debug\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
[Icons]
Name: "{userdesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
[Run]
Filename: {app}\{cm:AppName}.exe; Description: {cm:LaunchProgram,{cm:AppName}}; Flags: postinstall skipifsilent;
Filename: {app}\{cm:AppName}.exe; Description: {cm:AddShortcut,{cm:AppName}}; Flags: postinstall skipifsilent;
[CustomMessages]
AppName=MyApp
LaunchProgram=Start MyApp after finishing installation
AddShortcut=Add shortcut to desktop
[Code]
procedure CreateIcon;
var
IconFileName: string;
begin
IconFileName := ExpandConstant('{commondesktop}\MyApp.lnk');
CreateShellLink(
IconFileName, '',
ExpandConstant('{app}\{#MyAppExeName}'),
'', ExpandConstant('{app}'),
ExpandConstant('{app}\logo.ico'), 0, SW_SHOWNORMAL);
end;
Надеюсь, это поможет.