Installation NSIS。创建一个填写表单,将插入的数据写入txt文件

Installation NSIS。创建一个填写表单,将插入的数据写入txt文件,installation,nsis,Installation,Nsis,刚开始在我的第一个安装程序中使用NSIS。找到了我所需要的一切,除了一件事。我找到了如何编写和创建txt文件,但找不到任何信息,无法确定是否允许用户进行一些输入(在安装程序中打开表单),然后将插入的数据写入txt文件 现在我可以从nsDialog中编写输入,代码如下: nsDialogs::Create 1018 Pop $Dialog ${NSD_CreateText} 10% 20u 80% 12u "Insert the API KEY" Pop $Text nsDialogs::Sh

刚开始在我的第一个安装程序中使用NSIS。找到了我所需要的一切,除了一件事。我找到了如何编写和创建txt文件,但找不到任何信息,无法确定是否允许用户进行一些输入(在安装程序中打开表单),然后将插入的数据写入txt文件

现在我可以从nsDialog中编写输入,代码如下:

nsDialogs::Create 1018
Pop $Dialog

${NSD_CreateText} 10% 20u 80% 12u "Insert the API KEY"

Pop $Text
nsDialogs::Show


${NSD_GetText} $Text $0
MessageBox MB_OK "You typed:$\n$\n$0"

FileOpen $0 "$DESKTOP\Hello_world.txt" w
FileWrite $0 $Text
FileClose $0
然而,问题是,在Hello_world.txt中写入的数据是一些随机数字,现在我不太明白这些数字是什么,$Text不应该是字符串吗?

对话框(及其子控件)只存在于
nsDialogs::Create
nsDialogs::Show
之间。你得到的是随机信息,因为你试图从不再存在的东西中读取。另外,在您的示例中,
$Text
是编辑控制手柄(HWND),而不是文本,您的文本在您的示例中将位于
$0

要完成并显示对话框,必须调用
nsDialogs::Show
。在用户单击“下一步”、“上一步”或“取消”之前,此功能不会返回

您应该在页面的离开回调中读取用户输入:

Page Custom MyPageCreate MyPageLeave
Page Directory
Page InstFiles

Var MyTextControlHandle

Function MyPageCreate
nsDialogs::Create 1018
Pop $0

${NSD_CreateText} 10% 20u 80% 12u "Insert the API KEY"
Pop $MyTextControlHandle

nsDialogs::Show
; $MyTextControlHandle is no longer valid here
FunctionEnd

Function MyPageLeave
${NSD_GetText} $MyTextControlHandle $0 ; Get text from $MyTextControlHandle and store in $0
MessageBox MB_OK "You typed:$\n$\n$0"
; Save $0 somewhere if desired
FunctionEnd

要求我们推荐或查找书籍、工具、软件库、教程或其他非现场资源的问题对于Stack Overflow来说都是离题的,因为这些问题往往会吸引固执己见的答案和建议spam@idleberg我试着把我的问题修改得更精确,谢谢!