Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Frage Entwicklung Installation

GELÖST

Inno Setup Prüfe, ob 32 bzw. 64bit und starte jeweilige .exe will nicht funktionieren

Mitglied: 115122

115122 (Level 1)

05.03.2014, aktualisiert 10.03.2014, 2662 Aufrufe, 10 Kommentare

Hallo liebe Leute,

denke der Titel ist recht aussagekräftig. Folgend mein Code:

01.
[Code] 
02.
procedure RunAppInstaller; 
03.
var 
04.
  ResultCode: Integer; 
05.
 
06.
function Is64BitInstallMode: Boolean; 
07.
begin 
08.
  if Is64BitInstallMode then 
09.
    begin 
10.
      if not Exec(ExpandConstant('{tmp}\App\appclient64bit.exe'), '', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode) 
11.
      then 
12.
      MsgBox('App-Installation ist fehlgeschlagen, wenden Sie sich an den Administrator.' + #13#10 + #13#10 + SysErrorMessage(ResultCode), mbError, MB_OK); 
13.
  else 
14.
    begin 
15.
      if not Exec(ExpandConstant('{tmp}\App\appclient.exe'), '', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode) 
16.
      then 
17.
      MsgBox('App-Installation ist fehlgeschlagen, wenden Sie sich an den Administrator.' + #13#10 + #13#10 + SysErrorMessage(ResultCode), mbError, MB_OK); 
18.
    end 
19.
end;
Wenn ich kompilieren möchte, bekomme ich bei
01.
 function Is64BitInstallMode: Boolean; 
in Column 1 den Fehler 'BEGIN' expected angezeigt. Setze ich dann an diese Stelle ein "begin", gibts wieder Fehler.

Ich glaube ich mache bei dem Aufbau der begin - if - then blabla Geschichte irgendwas falsch, aber finde im Internet nichts, was auf meine Problematik passt.

Hoffe jemand weiß weiter und kann mir helfen.

Grüße,
lordzwieback
Mitglied: Pjordorf
05.03.2014 um 13:47 Uhr
Hallo,

Zitat von 115122:
Wenn ich kompilieren möchte
Ich selbst habe Inno noch nie verwendet, aber ich Zähle bei dir 3 mal beginn aber nur 2 mal end wobei ein end; mit einem Semikolunm abgeschlossen ist. Auswirkung?

begin - if - then blabla Geschichte irgendwas falsch, aber finde im Internet nichts, was auf meine Problematik passt.
2+2 <> 5? (einfaches rechnen mt Zahlen )

Gruß,
Peter
Bitte warten ..
Mitglied: 115122
05.03.2014 um 14:01 Uhr
Ich selbst habe Inno noch nie verwendet, aber ich Zähle bei dir 3 mal beginn aber nur 2 mal end wobei ein end;
mit einem Semikolunm abgeschlossen ist. Auswirkung?

01.
[Code] 
02.
procedure RunAppInstaller; 
03.
var 
04.
  ResultCode: Integer; 
05.
 
06.
function Is64BitInstallMode: Boolean; 
07.
begin 
08.
  if Is64BitInstallMode then 
09.
    begin 
10.
      if not Exec(ExpandConstant('{tmp}\App\appclient64bit.exe'), '', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode) 
11.
      then 
12.
      MsgBox('App-Installation ist fehlgeschlagen, wenden Sie sich an den Administrator.' + #13#10 + #13#10 + SysErrorMessage(ResultCode), mbError, MB_OK); 
13.
    end; 
14.
  else 
15.
    begin 
16.
      if not Exec(ExpandConstant('{tmp}\App\appclient.exe'), '', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode) 
17.
      then 
18.
      MsgBox('App-Installation ist fehlgeschlagen, wenden Sie sich an den Administrator.' + #13#10 + #13#10 + SysErrorMessage(ResultCode), mbError, MB_OK); 
19.
    end; 
20.
end; 
21.
[/Code]
Funktioniert genauso wenig. Über Auswirkungen vom Semikolon kann ich dir nichts berichten, habe mir die Schleifen größtenteils aus Foren abgeschaut. Bekomme mit dem obigen Code den gleichen Fehler wie vorher.
Bitte warten ..
Mitglied: Pjordorf
05.03.2014, aktualisiert um 14:19 Uhr
Hallo,

Über Auswirkungen vom Semikolon kann ich dir nichts berichten,
Aber die werden doch schon einen Zweck haben, oder meinst du die sind nur da weil die so schön aussehen?

habe mir die Schleifen größtenteils aus Foren abgeschaut.
Das ist der Nachteil von Kopieren. Man hat keinen Plan was man eigentlich tut und versteht noch weinger was da passieren tut.

; Dient wohl zum Abschluss der Befehlszeile
z.B. if not Exec(ExpandConstant('{tmp}\App\appclient64bit.exe'), '', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode);

Bekomme mit dem obigen Code den gleichen Fehler wie vorher.
Fehlerbehebung oder ist das für dich auch nur ein Fremdwort?

Gruß,
Peter
Bitte warten ..
Mitglied: colinardo
LÖSUNG 05.03.2014, aktualisiert 10.03.2014
Tach auch,
also das lässt sich eigentlich auch simpler machen. Schau dir unbedingt mal die 64Bit Beispiele im ScriptStudio an !
; "ArchitecturesInstallIn64BitMode=x64 ia64" requests that the install 
; be done in "64-bit mode" on x64 & Itanium, meaning it should use the 
; native 64-bit Program Files directory and the 64-bit view of the 
; registry. On all other architectures it will install in "32-bit mode". 
ArchitecturesInstallIn64BitMode=x64 ia64
und ob eine Anwendung bei 64bit oder 32bit gestartet werden soll kannst du so festlegen:
[Run] 
Filename: "{app}\MyProg64.exe"; Flags: 64bit postinstall; Check: IsX64 
Filename: "{app}\MyProg.exe"; Flags: 32bit postinstall; Check: IsOtherArch 
 
[Code] 
function IsX64: Boolean; 
begin 
  Result := Is64BitInstallMode and (ProcessorArchitecture = paX64); 
end; 
function IsOtherArch: Boolean; 
begin 
  Result := not IsX64 and not IsIA64; 
end;
Grüße Uwe
Bitte warten ..
Mitglied: colinardo
LÖSUNG 05.03.2014, aktualisiert 10.03.2014
Das ist Pascal-Code, etwas gewöhnungsbedürftig , so sollte deine Variante laufen:
01.
[Code] 
02.
procedure RunAppinstaller; 
03.
var  
04.
  ResultCode: Integer; 
05.
begin 
06.
    if (IsWin64) then 
07.
    begin 
08.
        if not Exec(ExpandConstant('{tmp}\App\appclient64bit.exe'), '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode) then 
09.
          MsgBox('App-Installation ist fehlgeschlagen, wenden Sie sich an den Administrator.' + #13#10 + #13#10 + SysErrorMessage(ResultCode), mbError, MB_OK) 
10.
    end 
11.
    else 
12.
    begin 
13.
        if not Exec(ExpandConstant('{tmp}\App\appclient.exe'), '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode) then 
14.
          MsgBox('App-Installation ist fehlgeschlagen, wenden Sie sich an den Administrator.' + #13#10 + #13#10 + SysErrorMessage(ResultCode), mbError, MB_OK) 
15.
    end 
16.
end;
und dann noch hinter dein letztes Source File die Procedure für das Ausführen deiner App hinzufügen (im Beispiel wird die Procedure zum Schluss des Setups ausgeführt)
01.
[Files] 
02.
Source: "C:\Program Files (x86)\Inno Setup 5\Examples\MyProg.exe"; DestDir: "{app}"; AfterInstall: RunAppInstaller
http://www.jrsoftware.org/ishelp/topic_scriptinstall.htm
Bitte warten ..
Mitglied: 115122
07.03.2014 um 08:56 Uhr
Sorry dass ich mich die Tage über nicht melden konnte, werde mich heute nochmal ransetzen und euch berichten, falls alles geklappt hat.
Bitte warten ..
Mitglied: 115122
07.03.2014 um 12:51 Uhr
Habe es nun folgendermaßen umgebaut:

01.
Source: "C:\App\appclient.exe"; DestDir: "{tmp}\App\"; Flags: ignoreversion; AfterInstall: RunAppInstaller 
02.
Source: "C:\App\appclientx64.exe"; DestDir: "{tmp}\App\"; Flags: ignoreversion; AfterInstall: RunVPNInstaller
Hier lade ich die jeweiligen Installationsdateien ins tmp-Verzeichnis, damit sie später wieder gelöscht werden können, nachdem die Routine vorbei ist.

Nachfolgend kommt das:

01.
procedure RunVPNInstaller;  
02.
var   
03.
ResultCode: Integer;  
04.
begin  
05.
  if (IsWin64) then  
06.
  begin  
07.
    if not Exec(ExpandConstant('{tmp}\App\appclientx64.exe'), '', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode) then  
08.
    MsgBox('App-Installation64 ist fehlgeschlagen, wenden Sie sich an den Administrator.' + #13#10 + #13#10 + SysErrorMessage(ResultCode), mbError, MB_OK)  
09.
  end  
10.
  else  
11.
  begin  
12.
    if not Exec(ExpandConstant('{tmp}\App\appclient.exe'), '', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode) then  
13.
    MsgBox('App-Installation32 ist fehlgeschlagen, wenden Sie sich an den Administrator.' + #13#10 + #13#10 + SysErrorMessage(ResultCode), mbError, MB_OK)  
14.
  end  
15.
end;
Hier bringt er mir immer den Fehler, dass die Datei nicht gefunden werden konnte. (Springt in die MsgBox)
Das Kopieren ins TMP scheint zu funktionieren, aber wieso er die Datei dann unter genau diesem Pfad nicht findet ist mir schleierhaft.

Klammer ich den Code so aus, dass er nur die 64er exe einläd und nachstehend nur die 64er exe anschmeißt, funktioniert es.
Bitte warten ..
Mitglied: colinardo
07.03.2014, aktualisiert um 13:10 Uhr
du hast oben einmal RunAppInstaller und ein anderes mal RunVPNInstaller als auszuführende Procedure geschrieben, und einmal Ausführen der Procedure reicht aus...
Bitte warten ..
Mitglied: 115122
10.03.2014 um 09:55 Uhr
Habe es nun letztendlich mit eurer Hilfe und ein wenig Kaffee geschafft, die Installationsroutine, welche drei voneinander abhängige Anwendungen installiert zu erstellen.

Vielen Dank. ;)

PS: Das mit dem RunAppInstaller und dem RunVPNInstaller war nur ein Tippfehler meinerseits, sorry dafür.
Bitte warten ..
Mitglied: colinardo
10.03.2014 um 10:54 Uhr
Wenns das dann war, den Beitrag bitte noch auf gelöst setzen, und die Lösungskommentare markieren. Merci.
Grüße Uwe
Bitte warten ..
Ähnliche Inhalte
Pascal und Delphi
Inno Setup - Pascal-Problem: Prüfe, ob 32 bzw. 64bit und schreibe nach der Installation in die Registry
gelöst Frage von kaheihoPascal und Delphi1 Kommentar

Hallo liebe Leute, leider bin ich -trotz einiger Recherchen in Netz - am Ende meiner (nicht vorhandenen Pascal-Kenntnisse) angelangt: ...

Installation
Inno Setup function DirExists Problem
Frage von 115122Installation1 Kommentar

Hallo, ich würde gerne in einer Updateroutine vor dem eigentlichen Update prüfen lassen, ob der Installationspfad auch schon vorhanden ...

Speicherkarten
Autorun, vom USB-Stick eine .exe starten - es will einfach nicht funktionieren
gelöst Frage von schorschSpeicherkarten4 Kommentare

Guten Tag Admins, ich denke und hoffe das ist für euch die einfachste Übung überhaupt. Also das was ich ...

Windows Tools
Exe als Dienst starten.
gelöst Frage von uLmiWindows Tools9 Kommentare

Hallo Leute, ich habe hier eine Banksoftware welche ich von einem Server auf den anderen übertragen habe Gewisse erforderliche ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 1 TagLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 2 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 2 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 2 TagenSicherheit10 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Batch & Shell
Meltdown Microsoft Prüf Script - .zip Datei leider leer
gelöst Frage von MasterBlaster88Batch & Shell13 Kommentare

Hallo zusammen, ich patche gerade unsere Windows Server bzgl. der Meltdown Lücke. Patch vorhanden, Reg Keys gesetzt Um das ...

Batch & Shell
Shell-Skript - Syntax error: Unterminated quoted string
Frage von newit1Batch & Shell13 Kommentare

Hallo Ich schreibe ein Skript das eine CSV-Datei in eine mySQL Datenbank schieben soll. Bekomme nach start des Skrips ...

E-Mail
Erfahrungen mit hMailServer gesucht
Frage von it-fraggleE-Mail10 Kommentare

Hallo, meine neue Stelle möchte einen eigenen Mailserver. Ich als Linuxkind war direkt geistig mit Postfix dabei. Leider wollen ...

Entwicklung
VBS: alle PDF-Dateien in einem Ordner gleichzeitig öffnen
gelöst Frage von JuweeeEntwicklung9 Kommentare

Hallo, ich habe in deiner Ordnerstruktur (.\Tagesberichte\xx.18\) mehrere dynamische PDF-Formulare (mit LCD erstellt). Die Berichtsformulare sind im Layout alle ...