I have a setup script that allows the user to specify where they would like to install my application. It is in the form of a Pascal script in the [Code] block.
var SelectUsersPage: TInputOptionWizardPage; IsUpgrade : Boolean; UpgradePage: TOutputMsgWizardPage; procedure InitializeWizard(); var AlreadyInstalledPath: String; begin { Determine if it is an upgrade... } { Read from registry to know if this is a fresh install or an upgrade } if RegQueryStringValue(HKLM, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\{#MyAppId}_is1', 'Inno Setup: App Path', AlreadyInstalledPath) then begin { So, this is an upgrade set target directory as installed before } WizardForm.DirEdit.Text := AlreadyInstalledPath; { and skip SelectUsersPage } IsUpgrade := True; { Create a page to be viewed instead of Ready To Install } UpgradePage := CreateOutputMsgPage(wpReady, 'Ready To Upgrade', 'Setup is now ready to upgrade {#MyAppName} on your computer.', 'Click Upgrade to continue, or click Back if you want to review or change any settings.'); end else begin IsUpgrade:= False; end; { Create a page to select between "Just Me" or "All Users" } SelectUsersPage := CreateInputOptionPage(wpLicense, 'Select Users', 'For which users do you want to install the application?', 'Select whether you want to install the library for yourself or for all users of this computer. Click next to continue.', True, False); { Add items } SelectUsersPage.Add('All users'); SelectUsersPage.Add('Just me'); { Set initial values (optional) } SelectUsersPage.Values[0] := False; SelectUsersPage.Values[1] := True; end;
So the question is, how can I maintain a silent installation? When a user calls /SILENT or /VERYSILENT , the installer defaults to SelectUsersPage.Values[1] , which is for Just Me . I want to help a user who wants to change the installation directory with an answer file.
I have not developed all this code and a newbie with Pascal.
Thanks.
source share