Hide Uninstall Completed dialog

Comments

9 comments

  • Avatar
    david

    It is not supported by default to disable this dialog, but you can workaround this behavior by adding <exit/> at the end of <postuninstallationactionlist>.

    Also, regarding your other question. You can customize installer strings following the suggestions from the following link:

    http://installbuilder.bitrock.com/docs/installbuilder-userguide.html#built_in_strings

  • Avatar
    Balu

    Thank you David for your reply.

    My requirement is if an application is already installed, I should show a dialog with couple of options.

    In those options, if user selects clean installation option, I should first uninstall the software and then install.

    While performing uninstall:

    1. can we change the confirmationquestion text? Am i Missing anything in below snippet. Other than below scenario, it should show default text in the confirmation question dialog during uninstallation.

      <runProgram program="${pre_installdir}/uninstall.exe">
          <programArguments></programArguments>
      

      Installer.Uninstallation.ConfirmationQuestion=Clean Installation requires your local Application Cache to be removed. Do you want to continue? <ruleevaluationlogic>or</ruleevaluationlogic> <rulelist> <comparetext logic="equals" text="${answer}" value="clean"/> </rulelist> </runprogram>

    2. After uninstallation, I should start installing the application. So, I dont want to show Uninstall completed dialog and I cannot use exit as well. Is there any other possible way to do this.

  • Avatar
    david

    In this case you can use <showQuestion> in your installer and then uninstall the previous installation using unattended mode depending on the answer.

    <showQuestion text="Clean Installation requires your local Application Cache to be removed. Do you want to continue?" variable="remove_previous_installation" default="no"/>
    
    <showProgressDialog>                                                                                                                                                                              
        <actionList>                                                                                                                                                                                  
            <runProgram progressText="Removing old installation data...">                                                                                                                                                                              
                <program>${pre_installdir}/uninstaller.exe</program>                                                                                                                                  
                <programArguments>--mode unattended</programArguments>                                                                                                                                
            </runProgram>                                                                                                                                                                             
        </actionList>                                                                                                                                                                                 
        <ruleList>                                                                                                                                                                                    
            <compareText text="${remove_previous_installation}" value="yes" logic="equals" />                                                                                                         
        </ruleList>                                                                                                                                                                                   
    </showProgressDialog>
    

    Also the <showProgressDialog> will provide some feedback to the user.

  • Avatar
    Balu

    Thanks David..

    It worked for me.

    Like Clean Installation, I have one more option called Repair. When user selects repair, it should install the application again at the same location where the application was installed previously with out uninstalling.

    However, in this scenario, In installation window, instead of showing as Installing, I need to display as Repair.

    I wrote below snippet but it is not working: <setinstallervariable> <name>next_page</name> <value>installation</value> Installer.Installation.Installing=Repairing <rulelist> <comparetext logic="equals" text="${answer}" value="Repair"/> </rulelist> </setinstallervariable>

    So, when user selects Repair option, after welcome screen, it should directly navigate to installation window and should show progress text as Repairing.

  • Avatar
    david

    You can use variables in custom language files and modify the value for these variables at install time. In your case, you can create the following custom-en.lng language file, including the following strings:

    Installer.Installing.Title=${installation_mode}   
    Custom.Installing=Installing                      
    Custom.Repairing=Repairing
    

    You will also need to add this custom language to your project with the following snippet:

    <project>
    ...
      <customLanguageFileList>                                            
          <language>                                                      
              <code>en</code>                                             
              <file>${build_project_directory}/custom-en.lng</file>      
          </language>                                                     
      </customLanguageFileList>
    

    And add the logic to change the message your <choiceParameter> <postShowPageActionList>:

    <choiceParameter name="choice_foo" default="install">                                              
        <optionList>                                                                                   
            <option text="Install" value="install"/>                                                   
            <option text="Repair" value="repair"/>                                                     
        </optionList>                                                                                  
        <postShowPageActionList>                                                                       
            <setInstallerVariable name="installation_mode" value="${msg(Custom.Installing)}">          
                <ruleList>                                                                             
                    <compareText text="${choice_foo}" logic="equals" value="install"/>                 
                </ruleList>                                                                            
            </setInstallerVariable>
    
            <setInstallerVariable name="installation_mode" value="${msg(Custom.Repairing)}">           
                <ruleList>                                                                             
                    <compareText text="${choice_foo}" logic="equals" value="repair"/>                  
                </ruleList>                                                                            
            </setInstallerVariable>                                                                    
        </postShowPageActionList>                                                                      
    </choiceParameter>
    
  • Avatar
    Balu

    When I implemented above code, While installing and Repairing instead of showing appropriate values, it is showing as ***Unknown Variable **** .

    Is there any issue in the code.

  • Avatar
    Balu

    After initialisation, It is showing as installing during both Install and Repair.

    Actually I don't want to show Choice parameter option, so I am trying to set variable under readytoinstall option during repair. Due to below snippet, Installation_mode value got changes to Repairing, however in installation page, still it is showing as Installing only.

                <setInstallerVariable name="installation_mode" value="${msg(Custom.Repairing)}">
                    <ruleList>
                        <compareText logic="equals" text="${answer}" value="Repair"/>
                    </ruleList>
                </setInstallerVariable>
    

    So, is there any other location we require to keep this snippet in order make it work.

  • Avatar
    Balu

    I am using following snippet for getting answer from user and it is not allowing <postshowpageactionlist> . So, I am trying to place above cited setinstallervariable under readytoinstall.

      <showChoiceQuestion>
            <defaultValue>Repair</defaultValue>
            <text>NeatScan Already installed, Please choose your action</text>
            <variable>answer</variable>
            <optionList>
                <option>
                    <description>It will overwrite current NeatScan files</description>
                    <image>${build_project_directory}/Images/repair.png</image>
                    <text>Repair</text>
                    <value>Repair</value>
                </option>
                <option>
                    <description>It will uninstall current version and install it again</description>
                    <image></image>
                    <text>Clean Installation</text>
                    <value>clean</value>
                </option>
                <option>
                    <description>It will uninstall current version</description>
                    <image></image>
                    <text>Uninstall</text>
                    <value>uninstall</value>
                </option>
            </optionList>
            <ruleList>
                <platformTest type="windows"/>
                <registryTest>
                    <key>HKEY_LOCAL_MACHINE\SOFTWARE\${project.windowsSoftwareRegistryPrefix}\</key>
                    <logic>exists</logic>
                    <name></name>
                </registryTest>
            </ruleList>
        </showChoiceQuestion>
    
  • Avatar
    Balu

    Thank you Juanjo.. Above option is working fine now. I would like to hide preparing to install, unpacking file, creating Uninstaller information and the sentences also.

    I used <showfileunpackingprogress>0</showfileunpackingprogress>. However, still it is showing as preparing to install, unpacking file, creating Uninstaller. I don't want to show anything other than slide shows and just showing as Installing during the installation. Is there any option to hide preparing to install, unpacking file, creating Uninstaller.

    In the similar way, is there any option hide uninstalling files sentence during uninstallation.

Please sign in to leave a comment.