You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 00:58:13