Skip to content
⌘ NSIS Forum Archive

CreateIPaddress control to ini file

17 posts

ducvinhbp#

CreateIPaddress control to ini file

I have an installation file packed with NSIS, can you help me see the packaging of that file?
ducvinhbp#
sorry i am new and dont understand anything.
I have a setup file that uses "TextReplace" to modify the path and IP address of the computer into the ini files. can you help me ?
ducvinhbp#


how to add IP address to setup window. and how to get this IP address automatically corrected to * .ini file
ducvinhbp#
Originally Posted by Anders View Post
Use nsDialogs to create custom pages.

can you tell me the reason
ducvinhbp#


I have done this. I want the imported IP address to be saved in my "* .ini" file. can you guide me
ducvinhbp#
outfile 'test_install.exe'

!include 'nsdialogs.nsh'
!include "MUI2.nsh"


Name "Program"
OutFile Program.exe
InstallDir $Temp

!insertmacro MUI_PAGE_DIRECTORY
Page custom CreatePage
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"

Section Install

SectionEnd

Function CreatePage
!insertmacro MUI_HEADER_TEXT "Set IP address" "Please input the IP address you want to set"
nsDialogs::Create 1018
Pop $0
${If} $0 == error
Abort
${EndIf}
${NSD_CreateLabel} 0u 2u 64u 8u "IP Address:"
${NSD_CreateIPaddress} 70u 0u 80u 12u ""
nsDialogs::Show
FunctionEnd
Anders#
Page custom CreatePage PageLeave
...
var ipaddrhwnd
var ipaddr
Function CreatePage
...
${NSD_CreateIPaddress} 70u 0u 80u 12u ""
Pop $ipaddrhwnd
nsDialogs::Show
FunctionEnd 
Function PageLeave
${NSD_GetText} $ipaddrhwnd $ipaddr
MessageBox mb_ok $ipaddr
FunctionEnd 
Section
SetOutPath $InstDir
WriteIniStr "$InstDir\config.ini" Server IP $ipaddr
SectionEnd 
ducvinhbp#


i did a good job fixing the path to ini. My problem is how do I remove the text before the IP address "a ="
Anders#
You don't because that is the format of a ini file. You can't use WriteIniStr with the format you want.
Anders#
Are you saying you want to disable these controls? It is pointless, the user can override with /D on the commandline.