ICON не отображается из меню «Пуск», а также из панели управления -> Программы и компоненты, использующие NSIS - PullRequest
0 голосов
/ 02 февраля 2019

Я пробовал много способов показать ICON из меню «Пуск», а также из Панели управления -> Программы и компоненты.Когда я запускаю скрипт на моей локальной машине, он показывает ICON.Но когда я запускаю этот установщик на других машинах, он не показывает ICON.Я попробовал следующие методы, но он не показывает ICON на других машинах.Что-то не так с моим кодом?Пожалуйста, помогите мне решить эту проблему.

!define COMPANYNAME "EMR"
!define APPNAME "PersonalEdition"

Method1 Для отображения значка из меню «Пуск»:

InitPluginsDir
File /oname=$PLUGINSDIR\newicon.ico "\workspace\NULLSOFT\src\Bitmaps\ProductIcon.ico"

SetShellVarContext all
createDirectory "$SMPROGRAMS\${COMPANYNAME}"
createShortCut "$SMPROGRAMS\${COMPANYNAME}\${APPNAME}.lnk" "$INSTDIR\Display.exe" "" "$PLUGINSDIR\newicon.ico" 0

Method2 Для отображения значка из меню «Пуск»Меню:

SetShellVarContext all
createDirectory "$SMPROGRAMS\${COMPANYNAME}"
createShortCut "$SMPROGRAMS\PersonalEdition.lnk" "$INSTDIR\Display.exe" "" "C:\Code\NULLSOFT\src\Bitmaps\ProductIcon.ico"

Method3 Для отображения значка из меню «Пуск»:

SetShellVarContext all
createDirectory "$SMPROGRAMS\${COMPANYNAME}"
createShortCut "$SMPROGRAMS\${COMPANYNAME}\${APPNAME}.lnk" "$INSTDIR\Display.exe" "" "C:\Program Files\NSIS\Contrib\Modern UI 2\Bitmaps\ProductIcon.ico" 1

Method4 Для отображения значка из меню «Пуск»:

SetShellVarContext all
createDirectory "$SMPROGRAMS\${COMPANYNAME}"
createShortCut "$SMPROGRAMS\${COMPANYNAME}\${APPNAME}.lnk" "$INSTDIR\Display.exe" "" "$INSTDIR\ProductIcon.ico" 0

Отображение сведений о PCPE на панели управления -> Программа и компоненты

WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\APC" "DisplayIcon" "C:\Code\PCPE\NULLSOFT\src\Bitmaps\ProductIcon.ico"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\APC" "DisplayIcon" "$PLUGINSDIR\newicon.ico"

1 Ответ

0 голосов
/ 02 февраля 2019

Вы не можете хранить значки (или другие постоянные файлы) в $ PluginsDir, поскольку этот каталог удаляется установщиком!

Обычно вы просто помещаете значок в свой .EXE, но если вы не можете этого сделатьзатем вы должны извлечь .ICO в $ InstDir:

Section
SetOutPath $InstDir
File "c:\myfiles\MyApp.exe"
File "c:\myfiles\ProductIcon.ico"

CreateShortcut "$SMPrograms\MyApp.lnk" "$InstDir\MyApp.exe" "" "$InstDir\ProductIcon.ico" 0

WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\MyApp" "DisplayIcon" "$InstDir\ProductIcon.ico"
WriteRegStr ... write the other uninstall data.
SectionEnd

Во время разработки вам может потребоваться обновить значки оболочки или даже перестроить значоккеш , если ваши предыдущие попытки повредили кеш.

...