2017-06-13 54 views
1

在其一生中,MyApp的创建额外的快捷键Userappdata,从高架的Inno Setup安装程序的用户开始菜单中创建快捷方式

MyAppGroupName\MyAppShortcut#2 
MyAppGroupName\MyAppShortcut#3 
... 

但作为Inno Setup的需要,因为注册表协会海拔编辑原{集团}产品插在不同的(commonstartmenu)目录:

MyAppGroupName\MyAppShortcutAtInstallation 

很高兴与{集团}味道安装这样

DisableProgramGroupPage=yes 

在这个阶段是不可选的。在其他人在创建路径的DIR

{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: "Software\Auth/MyApp"; Flags: uninsdeletekey 
Root: HKCU; Subkey: "Software\Auth\MyApp"; 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}\shell\open\command";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:Languages\German.isl" 
Name: es; MessagesFile: "compiler:Languages\Spanish.isl" 

[Dirs] 
Name: "{userstartmenu}\{userstartmenu}\{#MyAppName}" 

[UninstallDelete] 
Type: files; Name: "{#MyAppName}.chw" 

是否有任何已知的指向{集团}到{Userappdata的方法}在高架场景?或任何其他助手,例如here

回答

1

如果我理解你的问题正确的您正在寻找的{userprograms}{groupname}组合:

[Icons] 
Name: "{userprograms}\{groupname}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" 

虽然注意:

  • 你的做法是在一般的缺陷。安装程序不应同时要求提升和修改特定用户的环境。高程可以更改用户上下文(例如,如果管理员帐户与常规用户帐户不同)。所以你不知道,如果“用户”是合适的用户。
  • 在“开始”菜单中使用组与Windows 8和更新版本的Windows准则不符。
+0

谢谢,这工作。 –

+0

“在开始菜单中使用组与Windows指导原则相反”:足够公平,但在该目录中包含诸如“Windows Power Shell”,“Windows System”,“轻松访问”,“HTML Help Workshop” 。旧的习惯似乎很难死! –

+0

“安装程序不应该都需要提升和修改特定用户的环境”:当然是。那么唯一的选择就是从_MyApp_执行应用扩展关联。可惜,因为_MyApp_是第一次运行的RunasAdmin,并且在安装/启动时出现** 2个管理提示并不是一个好看! –

相关问题