#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
Создайте ярлык в папке «Автозагрузка» или запустите раздел реестра, если вы хотите, чтобы ваше приложение запускалось при входе пользователя в систему.