ICON不从开始菜单,并且还从控制面板显示 - >程序和使用NSIS功能

时间:2019-02-02 16:49:13

标签: nsis

我已经尝试了许多方法来显示从开始菜单中的图标,也从控制面板 - >程序和功能。当我在本地计算机上运行脚本时,它会显示图标。但是,当我在其他计算机上运行此安装程序时,它没有显示图标。我尝试了以下方法,但未在其他计算机上显示ICON。我的代码有什么问题吗?请帮助我解决此问题。

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

方法1从“开始”菜单显示图标:

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

方法2从“开始”菜单显示图标:

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

方法3从“开始”菜单显示图标:

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

方法4从“开始”菜单显示图标:

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 :(得分:0)

您不能在$ 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

在开发过程中,如果您先前的尝试破坏了缓存,则可能必须refresh the shell icons甚至是rebuild the icon cache