生成在安装期间要求用户输入的电子 app.exe(使用电子生成器和 nsis)?
Posted
技术标签:
【中文标题】生成在安装期间要求用户输入的电子 app.exe(使用电子生成器和 nsis)?【英文标题】:Generate electron app.exe which will ask for user input during installation (using electron-builder and nsis)? 【发布时间】:2020-10-22 23:24:36 【问题描述】: 我正在尝试使用 **electron-builder** 和 **nsis** 生成电子 app.exe,它应该在安装时询问用户输入。 以下是我的 **package.json**。 ... “建造”: "appId": "com.electron.test", “产品名称”:“测试”, “赢”: “目标”: [ “nsis” ], “图标”:“资产/icon.ico” , “nsis”: “warningsAsErrors”:假, "installerIcon": "assets/icon.ico", “runAfterFinish”:假, “单次点击”:假, “perMachine”:是的, “allowToChangeInstallationDirectory”:真, "installerHeader": "assets/installerHeader.bmp", “包括”:“构建/安装程序.nsh” , “苹果”: “类别”:“your.app.category.type” ... 我想显示自定义页面**在**选择位置页面和安装进度页面。 以下是我的 **installer.nsh**,它创建一个自定义页面,即要求用户输入用户名和密码。
!include "EnvVarUpdate.nsh"
!include "MUI2.nsh"
!include "nsDialogs.nsh"
!include "LogicLib.nsh"
Var Dialog
Var UserLabel
Var UserText
Var UserState
Var PassLabel
Var PassText
Var PassState
;--------------------------------
; Show install details
ShowInstDetails show
;--------------------------------
;Interface Settings
!define MUI_ABORTWARNING
Page custom nsDialogsPage nsDialogsPageLeave
Function nsDialogsPage
nsDialogs::Create 1018
Pop $Dialog
$If $Dialog == error
Abort
$EndIf
$NSD_CreateLabel 0 0 100% 12u "Username:"
Pop $UserLabel
$NSD_CreateText 0 13u 100% 12u $UserState
Pop $UserText
$NSD_CreateLabel 0 39u 100% 12u "Password:"
Pop $PassLabel
$NSD_CreatePassword 0 52u 100% 12u $PassState
Pop $PassText
nsDialogs::Show
FunctionEnd
Function nsDialogsPageLeave
$NSD_GetText $UserText $UserState
$NSD_GetText $PassText $PassState
$If $UserState == ""
MessageBox MB_OK "Username is missing."
Abort
$EndIf
$If $PassState == ""
MessageBox MB_OK "Password is missing."
Abort
$EndIf
StrCpy $1 $UserState
StrCpy $2 $PassState
FileOpen $9 $INSTDIR\credentials.txt w
FileWrite $9 "$1:$2"
FileClose $9
SetFileAttributes $INSTDIR\credentials.txt HIDDEN|READONLY
FunctionEnd
Section
SectionEnd
!macro customHeader
!macroend
!macro preInit
!macroend
!macro customInstall
$EnvVarUpdate $0 "PATH" "A" "HKLM" "$INSTDIR"
!macroend
!macro customUnInstall
$un.EnvVarUpdate $0 "PATH" "R" "HKLM" "$INSTDIR"
!macroend
请提供任何解决方案。
**感谢和问候**
Rachit V. Sakhidas
【问题讨论】:
问题是什么?编译器错误? 【参考方案1】:看起来一切都是正确的。发布的 NSIS 脚本用于创建您的自定义页面。你的问题是什么?您是否有任何错误或您只是不知道该怎么办?
问:您的页面未显示在安装程序中?
如果不是:您是否在 electron-nsis 脚本中包含您的自定义页面以便实际显示该页面?
问:您在创建自定义页面时有麻烦吗?
如果是:试试这个工具:https://nsis.sourceforge.io/Install_Designer(我是它的开发者,所以请随时在这里提问)。
很难说这几条信息有什么问题,请发布完整的脚本和日志。
【讨论】:
首先创建自定义页面显示我只想显示此页面一次,它将显示在选择位置和安装进度页面之间。 好的,发给你完整的脚本。以上是关于生成在安装期间要求用户输入的电子 app.exe(使用电子生成器和 nsis)?的主要内容,如果未能解决你的问题,请参考以下文章
iOS:无法注销 Facebook 用户并再次要求输入电子邮件和密码