Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Inno setup 从提升的Inno安装程序在“用户开始”菜单中创建快捷方式_Inno Setup_Usergroups_Privilege - Fatal编程技术网

Inno setup 从提升的Inno安装程序在“用户开始”菜单中创建快捷方式

Inno setup 从提升的Inno安装程序在“用户开始”菜单中创建快捷方式,inno-setup,usergroups,privilege,Inno Setup,Usergroups,Privilege,MyApp在其生命周期内会创建指向Userappdata的额外快捷方式 MyAppGroupName\MyAppShortcut#2 MyAppGroupName\MyAppShortcut#3 ... 然而,由于Inno安装程序需要提升,因为注册表关联编辑,原始{Group}项插入到不同的(commonstartmenu)目录中: MyAppGroupName\MyAppShortcutAtInstallation 非常满意安装中的{组}风格 DisableProgramGroupPage

MyApp在其生命周期内会创建指向Userappdata的额外快捷方式

MyAppGroupName\MyAppShortcut#2
MyAppGroupName\MyAppShortcut#3
...
然而,由于Inno安装程序需要提升,因为注册表关联编辑,原始{Group}项插入到不同的(commonstartmenu)目录中:

MyAppGroupName\MyAppShortcutAtInstallation
非常满意安装中的{}风格

DisableProgramGroupPage=yes
在现阶段,这不是一种选择。否则在目录中创建路径,如

在当前脚本中似乎不起作用:

        ...
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"

在提升的场景中,是否有任何已知的方法将{Group}指向{Userappdata}?或任何其他帮助者,例如?

如果我正确理解了您的问题,您正在寻找和的组合:


但请注意:


  • 你的方法总的来说是有缺陷的。安装程序不应同时要求提升和修改特定用户的环境。提升可以更改用户上下文(例如,如果管理员帐户与常规用户帐户不同)。因此,您不知道“用户”是否是正确的用户

  • 在“开始”菜单中使用组违反了适用于Windows 8及更新版本的Windows准则

“在“开始”菜单中使用组违反了Windows指南”:这很公平,但在该目录中有“Windows Power Shell”、“Windows系统”、“易访问性”、“HTML帮助研讨会”等内容。旧习惯似乎很难改掉!“安装程序不应同时要求特定用户的高程和修改环境”:当然正确。那么唯一的选择就是从MyApp执行应用程序扩展关联。遗憾的是,由于MyApp在第一次运行时运行的是admin,在安装/启动时有两个管理员提示,所以看起来不太好!我不明白,为什么MyApp第一次以管理员身份运行?MyApp必须读取MHZ值。RegOpen在
HKLM\HARDWARE\DESCRIPTION\System\CentralProcessor\0
上失败。有很多方法可以解决这个问题,但这样就不那么麻烦了。:)
        ...
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"
[Icons]
Name: "{userprograms}\{groupname}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"