2016-12-05 4 views
3

Ich verwende derzeit [Files] Flags: external, um Benutzerdaten in meine Installation zu importieren, die funktioniert.Inno-Setup Eingabeaufforderung für externe Dateiposition

Ich muss jetzt während der Installation nach einer bestimmten externen Datei fragen.

Anwendungsfall:
Wir installieren Software, die eine Lizenzdatei benötigt (nicht zu verwechseln mit der Lizenzvereinbarung). Ich möchte den Benutzer nach seiner Lizenzdatei fragen. Sobald sie eine Datei bereitstellen, wird sie in die Datei DestDir kopiert.

Ich bin auf der Suche nach etwas wie [Files] Flags: PromptForFile oder eine Routine, die das gleiche erreicht. Hat jemand das schon gelöst?

Antwort

2

Verwenden Sie die CreateInputFilePage function, um eine benutzerdefinierte Assistentenseite zu erstellen, um einen Benutzer nach der Lizenzdatei zu fragen.

Verwenden Sie dann scripted constant, um den ausgewählten Pfad als Quellpfad im Abschnitt [Files] zu verwenden.

[Files] 
Source: "{code:GetLicensePath}"; DestDir: "{app}"; Flags: external 

[Code] 

var 
    LicenseFilePage: TInputFileWizardPage; 

procedure InitializeWizard(); 
begin 
    LicenseFilePage := 
    CreateInputFilePage(
     wpSelectDir, 
     'Select License File Location', 
     'Where is your license file located?', 
     'Select where License file is located, then click Next.'); 

    LicenseFilePage.Add(
    'Location of license file:',   
    'License files|*.lic|All files|*.*', 
    '.lic');        
end; 

function GetLicensePath(Param: string): string; 
begin 
    Result := LicenseFilePage.Values[0]; 
end; 

License file page


ERLEDIGEN: Sie müssen irgendwie eine Situation zu handhaben, wenn ein Benutzer keine Lizenz-Datei auswählt. Entweder nicht erlauben, fortzufahren (verwenden Sie die NextButtonClick) oder überspringen Sie die Dateiinstallation (verwenden Sie die Check parameter).

Verwandte Themen