Установка значения поля пользовательской страницы Inno Setup из командной строки
Я настроил приведенный ниже сценарий, чтобы запросить у пользователя IP-адрес как часть мастера установки, этот адрес записывается в файл конфигурации, на который приложение будет ссылаться, чтобы узнать, с кем связываться. Я хотел бы предложить возможность указать этот IP-адрес в качестве параметра в командной строке, чтобы развертывание можно было автоматизировать и выполнять без вывода сообщений.
Из моего исследования, кажется, можно добавить параметр командной строки, но я изо всех сил пытаюсь понять, как именно установить это в моей настройке Inno, а затем, как я могу сделать это необязательным, чтобы его можно было указать в командной строке или через мастер установки.
Например что-то вроде app1.exe /ipaddress 192.168.0.1
Извиняюсь, если это простой процесс, я новичок в Inno Setup, поэтому любая помощь будет принята с благодарностью.
Кто-нибудь может предложить какую-либо помощь, чтобы помочь мне получить эту настройку?
[Code]
var
PrimaryServerPage: TInputQueryWizardPage;
function FileReplaceString(ReplaceString: string):boolean;
var
MyFile : TStrings;
MyText : string;
begin
Log('Replacing in file');
MyFile := TStringList.Create;
try
Result := true;
try
MyFile.LoadFromFile(ExpandConstant('{app}' + '\providers\win\config.conf'));
Log('File loaded');
MyText := MyFile.Text;
{ Only save if text has been changed. }
if StringChangeEx(MyText, 'REPLACE_WITH_CUSTOMER_IP', ReplaceString, True) > 0 then
begin;
Log('IP address inserted');
MyFile.Text := MyText;
MyFile.SaveToFile(ExpandConstant('{app}' + '\providers\win\config.conf'));
Log('File saved');
end;
except
Result := false;
end;
finally
MyFile.Free;
end;
Result := True;
end;
procedure InitializeWizard;
begin
PrimaryServerPage :=
CreateInputQueryPage(
wpWelcome, 'Application Server Details', 'Where is installed?',
'Please specify the IP address or hostname of your ' +
'Primary Application Server, then click Next.');
PrimaryServerPage.Add('Primary Application Server IP/Hostname:', False);
end;
procedure ReplaceIPAddress;
begin
FileReplaceString(PrimaryServerPage.Values[0]);
end;
1 ответ
Один простой способ прочитать параметр командной строки - это решить {param:}
псевдо-константа с использованием ExpandConstant
функция:
procedure InitializeWizard;
begin
PrimaryServerPage :=
CreateInputQueryPage(
wpWelcome, 'Application Server Details', 'Where is installed?',
'Please specify the IP address or hostname of your ' +
'Primary Application Server, then click Next.');
PrimaryServerPage.Add('Primary Application Server IP/Hostname:', False);
PrimaryServerPage.Values[0] := ExpandConstant('{param:ipaddress}');
end;
В командной строке используйте этот синтаксис для предоставления значения:
mysetup.exe /ipaddress=192.0.2.0
Дополнительные сведения см. В разделе Как определить значение параметра командной строки установщика в сценарии Inno Setup Pascal?
Если вы хотите запустить установщик автоматически, пропустите страницу в автоматическом режиме. Для этого запроса WizardSilent
функция в ShouldSkipPage
функция события:
function ShouldSkipPage(PageID: Integer): Boolean;
begin
Result := False;
if PageID = PrimaryServerPage.ID then
begin
Result := WizardSilent;
end;
end;
Теперь вы можете использовать этот синтаксис командной строки для предоставления значения и избегать любых запросов:
mysetup.exe /silent /ipaddress=192.0.2.0