当我以管理员用户身份运行我的安装脚本时,它将开始菜单条目放入“所有用户”配置文件中。我想要将开始菜单项放置在当前用户的配置文件中,如果他们是管理员用户并选择安装“Just for me”。如何为管理员用户创建“仅供我”安装?
我可以通过为#define选择两个值中的一个来完成,但我无法弄清楚如何创建一个有条件包含的常量。如果选择了“Just for me”安装,我已经有一个[Code]部分例程返回true。这里是场景:
#define StartMenuLocation = "{somegroup}" ; check JustForMeInstall
#define StartMenuLocation = "{anothergroup}" ; check AllUsersInstall
...
[Icons]
Name: "{#StartMenuLocation}\{#MyAppName}" ; Filename: "{app}\{#ExeName}" ; parameters: "{#CommandArgs}" ; comment: "Starts {#MyAppName} {#MyAppVersion}"
...
[Code]
function JustMeInstall : boolean ;
begin
Result := (InstallationType = itJustMe) ;
end ;
function AllUsersInstall: boolean ;
begin
Result := (InstallationType = itAllUsers) ;
end ;
其中#defines的“检查”参数不支持,当然被忽略。
因此,其实两个问题:
什么常数我用它来定义开始菜单文件夹位置。 - InnoSetup提供
{group}
,但该文件夹是在所有用户配置文件下创建的,除非安装该应用程序的用户没有管理权限,在这种情况下,它是在用户配置文件中创建的。我想为当前用户启动菜单文件夹设置一个常量,该文件夹在该用户以管理员用户身份登录时起作用。如何实现如上所示的条件#define(无论如何,这个问题之外的普遍兴趣)。
感谢@Deanna你反斜线得到了由标记吞噬 - 它应该阅读'{} userprograms \ {组名}或{commonprograms} \ {groupname}'。 – rossmcm
谢谢,更新:) – Deanna