JaMichl hat geschrieben:Hab ja nicht behauptet, dass das so nicht gänge (nur eben nicht *.msi direkt), eben getestet:funktioniert ebenfallsCode: Alles auswählen
procedure TForm1.Button1Click(Sender: TObject); var P:TProcess; begin P:=TProcess.Create(Nil); P.Executable:='C:\Windows\System32\msiexec.exe'; P.Parameters.Add('-i'); P.Parameters.Add('MSInstaller.msi'); P.Execute; P.Free; end;
MSI ausführen
-
Boneless
- Beiträge: 52
- Registriert: So 1. Dez 2013, 14:15
- OS, Lazarus, FPC: Windows 7 (L 1.0.14 - FPC 2.6.0)
- CPU-Target: 64Bit
- Wohnort: Ostsee
Re: MSI ausführen
Code: Alles auswählen
program Boneless;
{$mode Einsteiger}{H+}Re: MSI ausführen
Das hat jetzt aber wahrscheinlich wirklich nichts mehr mit Lazarus zu tun. Doch ich würde den Fehler wie folgt suchen:
- Geht mal in das Verzeichnis, wo MSInstaller.msi liegt und starte es manuell
- Wenn das funktioniert, probierst Du den Start von Deinem Lazarus-Projekt-Verzeichnis aus (z.B. mit einer Start.bat)
- Wenn das funktioniert rufts Du die Start.bat in Deinem Projekt auf
- Wenn das funktioniert kannst Du MSInstaller.msi entsprechend Deiner Start.bat mittels einer zuvor geposteten Varianten direkt ausführen
- Geht mal in das Verzeichnis, wo MSInstaller.msi liegt und starte es manuell
- Wenn das funktioniert, probierst Du den Start von Deinem Lazarus-Projekt-Verzeichnis aus (z.B. mit einer Start.bat)
- Wenn das funktioniert rufts Du die Start.bat in Deinem Projekt auf
- Wenn das funktioniert kannst Du MSInstaller.msi entsprechend Deiner Start.bat mittels einer zuvor geposteten Varianten direkt ausführen
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection; -
Boneless
- Beiträge: 52
- Registriert: So 1. Dez 2013, 14:15
- OS, Lazarus, FPC: Windows 7 (L 1.0.14 - FPC 2.6.0)
- CPU-Target: 64Bit
- Wohnort: Ostsee
Re: MSI ausführen
OK bin alle Schritte durchgegangen. Jetzt hats geklappt. Der einzige Fehler, den ich gemacht hatte, war, zwei Anführungszeichen in der Batch zu vergessen.
Vorher:
Nachher:
Sry für dieses triviale Versehen 
Vorher:
Code: Alles auswählen
start "MSInstaller.msi"Code: Alles auswählen
start "" "MSInstaller.msi"Code: Alles auswählen
program Boneless;
{$mode Einsteiger}{H+}Re: MSI ausführen
Schön, dass es funktioniert!
Nur als Info, falls
könntest Du ihn einfach auch inändern (ohne Anführungszeichen).
Nur als Info, falls
das der Inhalt Deiner *.bat ist,Boneless hat geschrieben:start "" "MSInstaller.msi"
könntest Du ihn einfach auch in
Code: Alles auswählen
MSInstaller.msiCode: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;