Como criar Arquivos.ini com base nas informações pegas pelo instalador Com Inno Setup e ISTool
como Faço para pegar uma informação digitada no instalador e criar o arquivo .ini no istool
sei que tem com mais não achei nada na que fala sobre isso, só achei o basico como Tutorial: Criando Instaladores, e essa video aulas [url:descricao=Criando Instaladores com InnoSetup – Aula 1 - 8]http://dev.rbtech.info/criando-instaladores-com-innosetup-aula-08-final/[/url]
sei que tem com mais não achei nada na que fala sobre isso, só achei o basico como Tutorial: Criando Instaladores, e essa video aulas [url:descricao=Criando Instaladores com InnoSetup – Aula 1 - 8]http://dev.rbtech.info/criando-instaladores-com-innosetup-aula-08-final/[/url]
Eduardo Silva
Curtidas 0
Respostas
Eduardo Silva
15/03/2017
Eu pesquisei mais um pouquinho (Pesquisei muito) e encontrei uma solução
na seção Code ficou Assim
na seção INI na parte onde Coloca o Servido ou seja o nome do Computador fica "{code:GetValueNames}/3050" e no arquivo ele ficara
Servidor/3050
No IsTool ficou assim:
na seção Code ficou Assim
[Code]
#ifdef UNICODE
#define AW "W"
#else
#define AW "A"
#endif
const
ERROR_MORE_DATA = 234;
type
TComputerNameFormat = (
ComputerNameNetBIOS,
ComputerNameDnsHostname,
ComputerNameDnsDomain,
ComputerNameDnsFullyQualified,
ComputerNamePhysicalNetBIOS,
ComputerNamePhysicalDnsHostname,
ComputerNamePhysicalDnsDomain,
ComputerNamePhysicalDnsFullyQualified,
ComputerNameMax
);
var
Page: TInputQueryWizardPage;
ComputerName: string;
function GetComputerNameEx(NameType: TComputerNameFormat; lpBuffer: string; var nSize: DWORD): BOOL;
external 'GetComputerNameEx{#AW}@kernel32.dll stdcall';
function TryGetComputerName(Format: TComputerNameFormat; out Output: string): Boolean;
var
BufLen: DWORD;
begin
Result := False;
BufLen := 0;
if not Boolean(GetComputerNameEx(Format, '', BufLen)) and (DLLGetLastError = ERROR_MORE_DATA) then
begin
SetLength(Output, BufLen);
Result := GetComputerNameEx(Format, Output, BufLen);
end;
end;
procedure CriarPaginaServidor;
begin
// Create the page
Page := CreateInputQueryPage(wpSelectComponents, 'Conexão Autosad',
'Parâmetros de conexão com o servidor de banco de dados.',
'Informe o servidor para conexão com o banco de dados.');
// Add items (False means it's not a password edit)
Page.Add('Servidor:', False);
if TryGetComputerName(ComputerNameDnsFullyQualified, ComputerName) then
Page.Values[0] := ComputerName
else
// Set initial values (optional)
Page.Values[0] := 'localhost';
end;
function NextButtonClick(CurPageID: Integer): Boolean;
begin
if CurPageID = Page.ID then
begin
if (CurPageID = Page.ID) then
begin
if (Page.Values[0] = '') then
begin
MsgBox('O campo servidor deve ser preenchido!', mbError, MB_OK);
Result := False;
end else
Result:= True;
end;
end else
Result:= True;
end;
function GetValueNames(param: String): String;
begin
Result := Page.Values[0];
end;
procedure InitializeWizard;
begin
CriarPaginaServidor;
end;
na seção INI na parte onde Coloca o Servido ou seja o nome do Computador fica "{code:GetValueNames}/3050" e no arquivo ele ficara
Servidor/3050
No IsTool ficou assim:
[INI]
; Criação do Arquivo Config.ini
Filename: \\Config.ini; Section: AUTOSAD; Key: DriverID; String: FB; Components: Servidor
Filename: \\Config.ini; Section: AUTOSAD; Key: Database; String: \\Banco\\BD_AUTOSAD.FDB; Components: Servidor
Filename: \\Config.ini; Section: AUTOSAD; Key: user_name; String: PROSYSTEM; Components: Servidor
Filename: \\Config.ini; Section: AUTOSAD; Key: password; String: pro690625; Components: Servidor
Filename: \\Config.ini; Section: AUTOSAD; Key: Protocol; String: Local; Components: Servidor
Filename: \\Config.ini; Section: AUTOSAD; Key: Server; String: {code:GetValueNames}/3050; Components: Servidor
Filename: \\Config.ini; Section: AUTOSAD; Key: Port; String: 3050; Components: Servidor
Filename: \\Config.ini; Section: AUTOSAD; Key: SQLDialect; String: 1; Components: Servidor
Filename: \\Config.ini; Section: AUTOSAD; Key: CharacterSet; String: WIN1251; Components: Servidor
Filename: \\Config.ini; Section: AUTOSAD; Key: VendorLib; String: gds32.dll; Components: Servidor
GOSTEI 0