Dynamic custom page
I'm wondering if there is a way to dynamically alter the content, specifically text boxes on a custom screen. I've got an initial screen that detects and displays missing/installed components. When the user clicks next, it'll then install the missing components. I want the text fields to change from "not installed" to "installing" and then once ExecWait is done, "installed".
Below is the code snippet of the two screens I'm trying to modify. Suggestions?
Function VersionPage
!insertmacro MUI_HEADER_TEXT "Detected Versions" "The components shown below were detected on your system. All are required for RTO to function. Click Next to install missing components."
Call CheckNET2
Pop $NET2
${If} $NET2 == "not found"
!insertmacro MUI_INSTALLOPTIONS_WRITE "versionpage.ini" "Field 3" "State" "Not Installed"
${Else}
StrCpy $NET2 $NET2 "" 1 # skip "v"
!insertmacro MUI_INSTALLOPTIONS_WRITE "versionpage.ini" "Field 3" "State" "Installed $NET2"
${EndIf}
Call CheckVCRedist
Pop $VC8
${If} $VC8 != -1
!insertmacro MUI_INSTALLOPTIONS_WRITE "versionpage.ini" "Field 5" "State" "Installed"
${EndIf}
Call CheckMSXML6
Pop $MSXML6
${If} $MSXML6 != -1
!insertmacro MUI_INSTALLOPTIONS_WRITE "versionpage.ini" "Field 7" "State" "Installed $MSXML6"
${EndIf}
Call CheckSQLClient
Pop $SQLCLI
${If} $SQLCLI != -1
!insertmacro MUI_INSTALLOPTIONS_WRITE "versionpage.ini" "Field 9" "State" "Installed $SQLCLI"
${EndIf}
Call CheckSQLSMO
Pop $SQLSMO
${If} $SQLSMO != -1
!insertmacro MUI_INSTALLOPTIONS_WRITE "versionpage.ini" "Field 11" "State" "Installed"
${EndIf}
!insertmacro MUI_INSTALLOPTIONS_DISPLAY "versionpage.ini"
FunctionEnd
Function VersionPageLeave
!insertmacro MUI_HEADER_TEXT "Installing Missing Components" "The missing components are currently being installed."
#Check for .NET 2.0
!insertmacro CheckDotNET
#Install VC++ 2005 redist
${If} $VC8 == -1
!insertmacro MUI_INSTALLOPTIONS_WRITE "versionpage.ini" "Field 5" "State" "Installing..."
SetOutPath $PLUGINSDIR
SetOverwrite on
File App\vcredist_x86.exe
ExecWait "$PLUGINSDIR\vcredist_x86.exe"
!insertmacro MUI_INSTALLOPTIONS_WRITE "versionpage.ini" "Field 5" "State" "Installed"
${EndIf}
#Installs MSXML 6.0 Parser
${If} $MSXML6 == -1
!insertmacro MUI_INSTALLOPTIONS_WRITE "versionpage.ini" "Field 7" "State" "Installing..."
SetOutPath $PLUGINSDIR
SetOverwrite on
File App\msxml6_x86.msi
ExecWait '"msiexec" /i /qr $PLUGINSDIR\msxml6_x86.msi"'
!insertmacro MUI_INSTALLOPTIONS_WRITE "versionpage.ini" "Field 7" "State" "Installed"
${EndIf}
Return
FunctionEnd