在其生命周期内,MyApp会为Userappdata创建额外的快捷方式,
MyAppGroupNameMyAppShortcut#2
MyAppGroupNameMyAppShortcut#3
...
然而,由于 Inno 安装程序由于注册表关联编辑而需要提升,因此原始 {Group} 项入到不同的(commonstartmenu(目录中:
MyAppGroupNameMyAppShortcutAtInstallation
对安装中的{组}味道非常满意,所以
DisableProgramGroupPage=yes
在此阶段不是一个选项。否则在目录中创建路径,例如
{Userappdata}MyAppGroupName
在当前脚本中似乎不起作用:
...
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
ChangesAssociations = yes
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 0,6.1
[Files]
; (Note: Scroll to the right to see the full lines!)
Source: "Test.exe"; DestDir: "{app}"; Flags: ignoreversion
[Icons]
Name: "{commondesktop}{#MyAppName}"; Filename: "{app}{#MyAppExeName}"; Tasks: desktopicon
Name: "{group}{#MyAppName}"; Filename: "{app}{#MyAppExeName}"
[Registry]
Root: HKCU; Subkey: "SoftwareAuth/MyApp"; Flags: uninsdeletekey
Root: HKCU; Subkey: "SoftwareAuthMyApp"; ValueType: string; ValueName: "Name"; ValueData: "{app}";
;Association
Root: HKCR; Subkey: ".XXX";ValueData: "{#MyAppName}";Flags: uninsdeletevalue; ValueType: string; ValueName: ""
Root: HKCR; Subkey: "{#MyAppName}";ValueData: "Program {#MyAppName}"; Flags: uninsdeletekey; ValueType: string; ValueName: ""
Root: HKCR; Subkey: "{#MyAppName}DefaultIcon";ValueData: "{app}{#MyAppExeName},0";ValueType: string; ValueName: ""
Root: HKCR; Subkey: "{#MyAppName}shellopencommand";ValueData: """{app}{#MyAppExeName}"" ""%1""";ValueType: string;ValueName: ""
[Run]
Filename: "{app}{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: en; MessagesFile: "compiler:Default.isl"
Name: deu; MessagesFile: "compiler:LanguagesGerman.isl"
Name: es; MessagesFile: "compiler:LanguagesSpanish.isl"
[Dirs]
Name: "{userstartmenu}{userstartmenu}{#MyAppName}"
[UninstallDelete]
Type: files; Name: "{#MyAppName}.chw"
在提升的方案中,是否有任何已知的方法 {Group} 指向 {Userappdata}?或任何其他助手,例如这里?
如果我
正确理解您的问题,您正在寻找{userprograms}
和{groupname}
的组合:
[Icons]
Name: "{userprograms}{groupname}{#MyAppName}"; Filename: "{app}{#MyAppExeName}"
但请注意:
- 你的方法总体上是有缺陷的。安装程序不应同时要求提升和修改特定用户的环境。提升可以更改用户上下文(例如,如果管理员帐户与常规用户帐户不同(。所以你不知道,"用户"是否是正确的用户。
- 在"开始"菜单中使用组违反了适用于 Windows 8 及更高版本的 Windows 指南。