Установленное приложение NSIS не отображается в меню «Пуск» / системном трее для других пользователей (не администраторов)

#nsis

#nsis

Вопрос:

Я установил приложение, использующее NSIS с правами администратора. Затем переключился на обычного пользователя (без прав администратора) для запуска приложения. Но здесь я не вижу меню «Пуск» и системного трея.

Ниже приведен фрагмент кода, который я использовал:

 RequestExecutionLevel admin

; To show the system tray notification 

ExecShell "" "$INSTDIRtest.exe"

; To show the installer icon at the start menu

createDirectory "$SMPROGRAMS${COMPANYNAME}"
createShortCut "$SMPROGRAMS${COMPANYNAME}${APPNAME}.lnk" "$INSTDIRMyapp.exe" "" "$INSTDIRtest.ico"
  

Мне нужно проверять пользователя Admin только при установке установщика, а не при запуске приложения.

Пожалуйста, помогите мне, предоставив изменения, необходимые для отображения меню «Пуск» и системного трея для обычного пользователя.

Ответ №1:

Используйте SetShellVarContext для переключения констант в режим «все пользователи» / machine:

 RequestExecutionLevel Admin

Function .onInit
SetShellVarContext All
FunctionEnd

Section
CreateShortcut "$SMProgramsTest.lnk" "$SysDirNotepad.exe" ; Created in the shared startmenu folder
SectionEnd
  

Создайте ярлык в папке «Автозагрузка» или запустите раздел реестра, если вы хотите, чтобы ваше приложение запускалось при входе пользователя в систему.