【发布时间】:2016-03-01 16:35:07
【问题描述】:
对于我的 NSIS 脚本,我需要一些用户信息,所以我有以下代码:
Function tomcatConfig
!insertmacro MUI_HEADER_TEXT "$(TEXT_CONF_TITLE)" "$(TEXT_CONF_SUBTITLE)"
nsDialogs::Create 1018
Pop $0
${NSD_CreateLabel} 0 2u 100u 14u "Tomcat shutdown port"
Pop $R0
${NSD_CreateText} 150u 0 50u 12u "8005"
Pop $CtlTomcatPortShutdown
${NSD_SetTextLimit} $CtlTomcatPortShutdown 5
${NSD_CreateLabel} 0 19u 100u 14u "Tomcat default http port"
Pop $R0
${NSD_CreateText} 150u 17u 50u 12u "80"
Pop $CtlTomcatPortHttp
${NSD_SetTextLimit} $CtlTomcatPortHttp 5
${NSD_CreateLabel} 0 36u 100u 14u "Tomcat default https port"
Pop $R0
${NSD_CreateText} 150u 34u 50u 12u "443"
Pop $CtlTomcatPortSSL
${NSD_SetTextLimit} $CtlTomcatPortSSL 5
${NSD_CreateLabel} 0 57u 140u 14u "Tomcat service name"
Pop $R0
${NSD_CreateText} 150u 55u 140u 12u "Servicename"
Pop $CtlTomcatServiceName
${NSD_SetFocus} $CtlTomcatPortShutdown
nsDialogs::Show
FunctionEnd
当我在脚本中使用$CtlTomcatPortShutdown、$CtlTomcatPortHttp、$CtlTomcatPortHttp、$CtlTomcatServiceName 时,我得到了一些随机数,而不是我期望的输入(服务名称、端口号等)。
这个来自 NSIS NsDialog 页面的示例在 Windows 10 上看起来也无效,当我使用 $Text 时,我也会返回一个随机数。
!include nsDialogs.nsh
!include LogicLib.nsh
Name nsDialogs
OutFile nsDialogs.exe
XPStyle on
Var Dialog
Var Label
Var Text
Page custom nsDialogsPage
Page instfiles
Function nsDialogsPage
nsDialogs::Create 1018
Pop $Dialog
${If} $Dialog == error
Abort
${EndIf}
${NSD_CreateLabel} 0 0 100% 12u "Hello, welcome to nsDialogs!"
Pop $Label
${NSD_CreateText} 0 13u 100% -13u "Type something here..."
Pop $Text
nsDialogs::Show
FunctionEnd
Section
DetailPrint "hello $Text"
SectionEnd
【问题讨论】:
-
我推荐你使用NSIS Dialog Designer。设计安装程序自定义页面的绝佳工具。
-
NSIS 上的基本示例也返回了一个随机数,可能是 NSIS 和 Windows 10 的东西..
标签: stack installation nsis