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;
funktioniert ebenfalls
Ja er macht auch etwas.. also irgend etwas öffnet er dort. Aber es erscheint halt nicht das Fenster der MSI, wenn ich sie per Doppelklick starte. Habe auch ein Parameter '/k' hinzugefügt, um es nachzuvollziehen. Da erscheint bloß das Fenster (ich schätz mal) der msiexec
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
OK bin alle Schritte durchgegangen. Jetzt hats geklappt. Der einzige Fehler, den ich gemacht hatte, war, zwei Anführungszeichen in der Batch zu vergessen.