Hallo,
ich stehe vor dem Problem dass ich einen Dienst, den ich mit SetupV1 installiert habe, mit einem SetupV2 stoppen und den StartTyp auf manuell setzen möchte/muss.
Ich habe versucht das mit diesem Script zu lösen, aber es tut nicht:
function StopAndDisableServices(hMSI)
begin
StopAndDisableService("Dienst 123");
StopAndDisableService("Dienst XYZ");
end;
function StopAndDisableService(szServcieName)
string szKey;
number nResult;
begin
if (ServiceExistsService(szServcieName) = TRUE) then
// Service versuchen zu beenden
if (ServiceStopService(szServcieName) < ISERR_SUCCESS )then
Sleep(100);
ServiceStopService(szServcieName);
endif;
// Service auf "manuell" umstellen
szKey = "\\SYSTEM\\CurrentControlSet\\services\\" ^ szServcieName;
nResult = RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
if (RegDBKeyExist(szKey) < 0) then
MessageBox ("RegistyKey not found!", INFORMATION);
endif;
//nResult = RegDBSetKeyValueEx (szKey, "Start", REGDB_NUMBER, "3", -1 );
if (RegDBSetKeyValueEx (szKey, "Start", REGDB_NUMBER, "3", -1 ) < 0) then
MessageBox ("RegistyKey not set!", INFORMATION);
endif;
endif;
end;
Das Script wird währen der Installation in der "Install Exec Sequence" aufgerufen.
Was mache ich falsch, prinzipiell müsste es doch funktionieren.
Oder gibt es eine elegantere Methode zur Lösung meines Problems?
mfg
Ralph