![]() |
Inno Setup: in eigener Function Wert aus [Components] auswerten
Hallo werte Progger,
ich stehe vor der Herausforderung, abhängig von einer Auswahl des Bedieners eine x64er Installation zu einer x86er zu ändern: Ein Programm von mir liegt als x86 und x64er Version vor. Eine DLL ebenso, eine andere aber nur als x86 Prog: x86 und x64 ("MyProg-x86.exe" und "MyProg-x64.exe") DLL1: x86 und x64 ("dll1-x86.dll" und "dll1-x64.dll") DLL2: x86 (nur als "dll2-x86.dll") Nun soll das Setup bei der Auswahl der DLL2 die 32bit-Linie installieren, wenn aber nur die DLL1 gewählt ist, soll je nach BS entweder alles als 32Bit oder als 64Bit installiert werden. Im Grunde genommen müsste es unterem Code ähnlich sein.
Code:
Nur meckert Inno Setup die function "x64isok" an.
[Setup]
ArchitecturesInstallIn64BitMode=x64 [.CODE] function x64isok (): Boolean; begin result:=Is64BitInstallMode and not dll2; end; [Types] Name: "full"; Description: "vollständig" Name: "custom"; Description: "benutzerdefiniert"; Flags: iscustom [Components] Name: "program"; Description: "Hauptprogramm"; Types: full custom; Flags: fixed Name: "dll1"; Description: "DLL1"; Types: full custom; Name: "dll2"; Description: "DLL2"; Types: full custom; [Files] Source: "MyProg-x64.exe"; DestDir: "{app}"; DestName: "MyProg.exe"; Check: x64isok Source: "MyProg-x86.exe"; DestDir: "{app}"; DestName: "MyProg.exe"; Check: not x64isok Source: "dll1-x64.dll"; DestDir: "{app}"; DestName: "DLL1.dll"; components: dll1; Check: x64isok Source: "dll1-x86.dll"; DestDir: "{app}"; DestName: "DLL1.dll"; components: dll1; Check: not x64isok Source: "dll2-x86.dll"; DestDir: "{app}"; DestName: "DLL2.dll"; components: dll2; Zitat:
Ich hoffe, einer von euch kann mir da auf die Sprünge helfen. Danke schon einmal im Vorfeld. ([.CODE] ist im Original ohne den Punkt, den habe ich nur wegen des Parsers hier eingefügt) Da wir gerade dabei sind, noch eine Frage: bei der Funktion
Code:
muss ich zwingend einen Parameter (Param) übergeben, der aber nicht benutzt und leer ist. Wie kann ich dies verhindern?
function ProgDir(Param: String): String;
Var P : String; begin P := ExpandConstant('{app}'+'\Exe'); Result:= P; End; [Dirs] Name: "{code:ProgDir}" |
AW: Inno Setup: in eigener Function Wert aus [Components] auswerten
Inno meckert, weil ddl2 kein Pascalbezeichner ist + hier nicht definiert ist. Ich hab´s nicht im Kopf, aber es muss was Ähnliches wie das ExpandConstant sein, damit kannst du im Pascal-Teil auf Variablen von Inno zugreifen. Schasu mal hier
![]() unter ScriptedConstants. |
AW: Inno Setup: in eigener Function Wert aus [Components] auswerten
Zitat:
|
AW: Inno Setup: in eigener Function Wert aus [Components] auswerten
Zitat:
Zitat:
|
AW: Inno Setup: in eigener Function Wert aus [Components] auswerten
Zitat:
Kaum macht man's richtig, geht's auch 8-) Das mit dem "(Param: String)" war eh nur eine Schönheitssache, es funktioniert ja schon lange auch so... |
AW: Inno Setup: in eigener Function Wert aus [Components] auswerten
Zitat:
Grüße, Andreas |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz