首页 > 解决方案 > 其他用户(非管理员用户)的开始菜单/系统托盘中未显示已安装的 NSIS 应用程序

问题描述

我已经使用具有管理权限的 NSIS 安装了一个应用程序。然后切换到普通用户(没有管理权限)来启动应用程序。但是在这里我没有看到开始菜单和系统托盘。

下面是我使用的代码片段:

RequestExecutionLevel admin

; To show the system tray notification 

ExecShell "" "$INSTDIR\test.exe"

; To show the installer icon at the start menu

createDirectory "$SMPROGRAMS\${COMPANYNAME}"
createShortCut "$SMPROGRAMS\${COMPANYNAME}\${APPNAME}.lnk" "$INSTDIR\Myapp.exe" "" "$INSTDIR\test.ico"

我只需要在安装安装程序而不是启动应用程序时检查管理员用户。

请通过提供为普通用户显示开始菜单和系统托盘所需的更改来帮助我。

标签: nsis

解决方案


用于SetShellVarContext将常量切换到“所有用户”/机器模式:

RequestExecutionLevel Admin

Function .onInit
SetShellVarContext All
FunctionEnd

Section
CreateShortcut "$SMPrograms\Test.lnk" "$SysDir\Notepad.exe" ; Created in the shared startmenu folder
SectionEnd

如果您希望应用程序在用户登录时启动,请在 Startup 文件夹或 Run 注册表项中创建一个快捷方式。


推荐阅读