gpt4 book ai didi

conditional-statements - 如何为管理员用户创建 "just for me"安装?

转载 作者:行者123 更新时间:2023-12-02 21:51:21 25 4
gpt4 key购买 nike

当我以管理员用户身份运行安装脚本时,它将开始菜单条目放入“所有用户”配置文件中。如果他们是管理员用户并选择安装“Just for me”,我希望将开始菜单条目放置在当前用户的配置文件中。

我可以通过为 #define 选择两个值之一来完成此操作,但我不知道如何创建有条件包含的常量。我已经有一个 [Code] 部分例程,如果选择了“Just for me”安装,该例程将返回 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 的“check”参数不受支持,当然会被忽略。

所以有两个问题:

  • 我使用什么常量来定义开始菜单文件夹位置。 - InnoSetup 提供{group},但此文件夹是在“所有用户”配置文件下创建的,除非安装应用程序的用户没有管理权限,在这种情况下,该文件夹是在用户的配置文件中创建的。我想要当前用户开始菜单文件夹的常量,该常量在该用户以管理员用户身份登录时起作用。

  • 如何实现如上所示的条件#defines(无论如何,这也是这个问题之外的普遍兴趣)。

最佳答案

您将 PrivilegesRequired 指令设置为最低,这意味着 Inno 只会为当前用户安装,无论它是否以管理员身份运行。(这也意味着您无法在系统位置安装任何内容。

请注意,这不能在运行时设置,因此如果您想允许这两种类型,则需要创建两个设置。

如果您只想更改图标的位置,可以有条件地使用{userprograms}\{groupname}{commonprograms}\{groupname}

关于conditional-statements - 如何为管理员用户创建 "just for me"安装?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6769610/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com