Hallo Forum,
ich habe ein kleines Problem. Und zwar schreibe ich zur Zeit ein Installationsprogramm für eine Software und muss neben dieser Software auch den Microsoft
SQL Server 2005 (Express Edition) mitinstallieren. Klappt auch alles wunderbar, allerdings hätte ich gerne einen Rückgabewert vom Server-Setup-Programm oder eine andere Möglichkeit um zu überprüfen, ob die Installation des Server auch funktioniert hat.
Ich gehe in meinem Programm folgendermaßen vor:
Benutzt wird
SQLEXPR32_DEU.EXE für das Server-Setup.
Für den Aufruf innerhalb des Installationsprogramms habe ich diese Funktion:
Delphi-Quellcode:
function ProgrammAusfuehren(const szProgramm, szParameter : String) : Boolean;
var
ShellExecuteInfo : TShellExecuteInfo;
ProzessHandle : DWORD;
begin
Result := true;
ZeroMemory(@ShellExecuteInfo, SizeOf(TShellExecuteInfo));
with ShellExecuteInfo do
begin
cbSize := SizeOf(TShellExecuteInfo);
fMask := SEE_MASK_NOCLOSEPROCESS or SEE_MASK_FLAG_DDEWAIT;
Wnd := GetActiveWindow();
lpVerb := 'open';
lpParameters := PChar(szParameter);
lpFile := PChar(szProgramm);
nShow := SW_SHOWNORMAL;
end;
if not ShellExecuteEx(@ShellExecuteInfo) then
begin
Result := false;
Exit;
end
else ProzessHandle := ShellExecuteInfo.HProcess;
while WaitForSingleObject(ShellExecuteInfo.hProcess, 50) <> WAIT_OBJECT_0 do
Application.ProcessMessages;
CloseHandle(ProzessHandle);
end;
die ich dann so aufrufe:
ProgrammAusfuehren('PFAD...SQLEXPR_GER.EXE', '/settings PFAD...set.ini /qb');
nachdem ich die INI-Datei mit den entsprechenden Einträgen gefüllt habe:
[Options]
USERNAME=
COMPANYNAME=
INSTALLSQLDIR=""
ADDLOCAL=All
INSTANCENAME=""
SAPWD=""
SECURITYMODE=
SQL
DISABLENETWORKPROTOCOLS=0
Wie gesagt, funktioniert super, aber ich wäre gern auf der sicheren Seite falls etwas daneben geht! Ich habe zwar schon eine Menge rumgegoogelt und auch versucht über die Installations-LOG-Dateien des Server-Setups eine entsprechende Rückmeldung zu bekommen, aber da ist mir bisher noch nichts gelungen. Hat eventuell jemand Erfahrung mit diesem Thema und kann mir ein paar Tipps geben?
Viele Grüße,
David