NSIS技术咨询:如何用NSD_SetIconFromInstaller在窗口显示安装图标
在NSIS自定义安装窗口中显示程序图标
你的代码里{NSD_SetIconFromInstaller}用法有误,且$0未赋值,导致图标无法正常显示。可以通过以下方式修复:
修复后的完整代码
Name "Project 1" OutFile "Setup.exe" XPStyle on Icon "C:\Project 1\Bin\Main.ico" !include nsDialogs.nsh !include LogicLib.nsh Page custom Welcome Page instfiles Function Welcome nsDialogs::Create 1018 Pop $0 ; 获取对话框句柄 ; 创建图标控件 ${NSD_CreateIcon} 0 0 32 32 Pop $1 ; 初始化插件临时目录,提取安装程序图标到该目录 InitPluginsDir ExtractIcon "$EXEPATH" 0 "$PLUGINSDIR\setup.ico" ; 将提取的图标设置到控件 ${NSD_SetIcon} $1 "$PLUGINSDIR\setup.ico" ; 创建欢迎标签 ${NSD_CreateLabel} 40 0 100% 30u "Welcome to the setup wizard!" Pop $2 nsDialogs::Show FunctionEnd Section File "C:\Project 1\Bin\Application.exe" File "C:\Project 1\Bin\Application.dll" ; 其他需要安装的文件 SectionEnd
关键修改说明
- 调用
InitPluginsDir创建临时目录,确保图标提取有合法存储路径 - 用
ExtractIcon从当前安装程序($EXEPATH)提取第0个图标到临时目录 - 通过
${NSD_SetIcon}将提取的图标文件绑定到图标控件上
内容的提问来源于stack exchange,提问作者Boramae
相关产品推荐
相关产品推荐

