如何在Inno Setup中安装部分后移动任务部分



请注意,我是Inno Setup的新手。目前我有以下几种:

Installation language selection (1) -> Select additional tasks (2) -> Ready to install (3) -> Installing (4) -> Click finish to exit Setup. (5)

我想要实现的是在Installing (4)之后提示用户输入Additional tasks (2)。我在"附加任务"上有Create a desktop shortcutLaunch 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:MyApplogo.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:LanguagesUkrainian.isl"
[Files]
Source: "C:UsersmyuserMyAppbinRelease*"; 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;

没有在上一个设置步骤中添加复选框。

我尝试在[Setup]部分的末尾添加ChangesAssociations=yes,但也没有添加复选框。

在那之后,我想我可以使用与上次设置步骤中添加复选框以启动应用程序相同的方法。

因此,尝试添加第二个复选框,如下所示:

[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

如果需要任何进一步的信息,请告诉我。

更新:

这是最新版本的脚本:

#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:UsersmyuserProjectsMyApplogo.ico
Compression=lzma
SolidCompression=yes
WizardStyle=modern
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "ukrainian"; MessagesFile: "compiler:LanguagesUkrainian.isl"
[Files]
Source: "C:UsersmyuserProjectsMyAppbinDebug*"; 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;

希望这能有所帮助。

安装完成后运行应用程序很容易。请参阅:
Inno Setup-如何在完成页面创建复选框?或
成功安装后运行应用程序


创建桌面快捷方式更为复杂。一种简单的方法(从Inno-Setup脚本的角度来看(是将快捷方式的创建"外包"给应用程序本身(通过命令行参数(或某个脚本(例如PowerShell(。然后,您可以像上面的应用程序一样运行该应用程序/脚本。

如果你想让安装程序自己创建快捷方式,你必须像这里所示那样破解它:
运行脚本代码(添加注册表项(,而不是在Inno Setup 的Run条目中执行

在代码中创建快捷方式的代码如下:
在Inno Setup 的Run部分之后创建桌面链接图标

最新更新