我有一个安装我的应用程序的NSIS安装程序,它在Startup文件夹中创建了一个快捷方式(允许我的应用程序在Windows启动时启动。
;Create Auto Startup Shortcut
CreateShortCut "$SMSTARTUP\my_app.lnk" "$INSTDIR\Bin\my_app.exe"
但是,现在我的应用程序会自动启动所有登录计算机的用户。我只希望它为安装该应用程序的用户自动运行。
答案 0 :(得分:0)
NSIS令人困惑地打电话给"当前用户"选项MultiUser,如" MultiUser.nsh"。无论如何,这个脚本(当使用MULTIUSER_EXECUTIONLEVEL=Standard
运行时)将允许您仅为当前用户安装。
答案 1 :(得分:0)
有两种类型的安装方案
在NSIS中,您可以通过
执行当前/单用户模式RequestExecutionLevel user
添加到脚本中。按机器/共享/所有用户模式
RequestExecutionLevel admin
和SetShellVarContext all
添加到脚本中。在NSIS中,某些路径常量(如$ SMPrograms)受SetShellVarContext
指令的影响,它可用于在用户和共享/机器文件夹路径之间切换。但是,您应始终将其与您正在进行的安装类型相匹配,因为UAC可能导致安装程序以“错误用户”身份运行,而非管理员用户无法对共享文件夹具有写入权限。
MultiUser.nsh尝试为您提供在运行时选择模式的方法,但您必须小心,因为您不希望在执行共享安装时为单个用户执行操作。
如果要为所有用户安装,则安装程序无法设置每用户启动快捷方式,必须由用户执行时完成。
如果您不关心因为UAC而错误运行的用户,您可以更改为用户文件夹常量:
SetShellVarContext user ; Force per-user folder constants
CreateShortcut "$SMSTARTUP\my_app.lnk" "$INSTDIR\Bin\my_app.exe"