我希望我的InnoSetup可以允许客户安装两个程序中的一个或安装两个程序。
我做了额外的选择面板,用户检查他想要安装的内容,但我有以下问题
如何动态告诉安装程序的位置?
例如默认安装目录是> Program Files\Program 1
如何将其更改为Program Files\Program 2
如何更改UninstallDisplayIcon?
目前UninstallDisplayIcon={app}\program1.exe
如何更改它取决于所选设置:UninstallDisplayIcon={app}\program2.exe
当前配置(来自评论):
[Run]
Filename: {app}\{#MyAppExeName};
Description: {cm:LaunchProgram,{#MyAppName}};
Flags: nowait postinstall skipifsilent
MyAppExeName当前在文件开头定义的常量。
我的问题是如何做这样的事情:
[Run]
Filename: {app}\MYFUNCTIONFROMCODESECTION_THAT_WILL_RETURN_NAME;
Description: {cm:LaunchProgram,{#MyAppName}};
Flags: nowait postinstall skipifsilent
答案 0 :(得分:3)
如何在运行时更改AppName指令值?
由于在安装程序的初始化时间进行评估,因此无法在运行时更改AppName
指令值。
如何有条件地指定已安装的文件目的地?
为此,您可以使用{code:...}
脚本常量。例如:
[Files]
Source: "MyApp.exe"; DestDir: "{code:GetMyAppDestDir}"
[Code]
function GetMyAppDestDir(Value: string): string;
begin
Result := '<Here return the path where the file should be installed...>';
end;
如何在运行时更改UninstallDisplayIcon指令值?
为此,您还可以使用{code:...}
脚本常量。例如:
[Setup]
UninstallDisplayIcon={code:GetUninstallDisplayIcon}
[Code]
function GetUninstallDisplayIcon(Value: string): string;
begin
Result := '<Here return the path of the icon to be used for uninstaller...>';
end;