nsis - 其他用户(非管理员用户)的开始菜单/系统托盘中未显示已安装的 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"
我只需要在安装安装程序而不是启动应用程序时检查管理员用户。
请通过提供为普通用户显示开始菜单和系统托盘所需的更改来帮助我。
解决方案
用于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 注册表项中创建一个快捷方式。
推荐阅读
- ios - 自定义视图在 Xcode 11.4 上不起作用 Testfligt
- c++ - 如何检测调用结果是否有效
- javascript - 如何让我的垫片在固定头中工作?
- ansible - 解包 ansible 结果变量
- oop - Groovy:Class.forName().newInstance() 错误
- python - Numpy数组:如何在不复制数组的情况下撤消零填充?
- string - 在 Visual Studio 2017 (Visual Basic) 中删除字符串左侧直到某个字符的所有内容
- c - 链表中的双指针
- python - Sqlalchemy 多对多关系的一侧不为空
- java - Myfaces ServletContext 'null' 已初始化