Einzelnen Beitrag anzeigen

Benutzerbild von APP
APP

Registriert seit: 24. Feb 2003
Ort: Graz (A)
705 Beiträge
 
Delphi 7 Enterprise
 
#1

Service/Dienst: Bei Fehler Starttyp auf "stDisable"

  Alt 23. Mär 2004, 08:47
Hallo,
ich habe eine VCL-Service-Applikation, die beim Starten auf Vorhandensein einer INI-Datei prüft:

Code:
PROCEDURE TsrvWatcher.ServiceStart(Sender: TService; VAR Started: Boolean);
VAR
  IniFile                         : TIniFile;
BEGIN
  IniFile := TIniFile.Create(ChangeFileExt(ApplicationLocation, '.ini'));
  TRY
    WITH IniFile DO
      BEGIN
        IF NOT FileExists(FileName) THEN
          BEGIN
            LogMessage(#13#10 + #13#10 + srvWatcher.DisplayName + ' ERROR: ' +
              IniFile.FileName + ' not found, shutdown myself!)', EVENTLOG_ERROR_TYPE);
            Self.DoStop;
//            [b][color=red]Self.StartType := stDisabled; //<-- DAS FUNKTIONIERT NICHT[/color][/b]
            EXIT;
          END;
      END;
  FINALLY
    // IniFile
    FreeAndNil(IniFile);
  END;
  Timer_MainLoop.Enabled := True;
END;
Ich möchte, dass wenn ein Fehler auftritt, der StartType auf stDisabled gesetzt wird,
damit nicht nach jedem Neustart des Rechners versucht wird das Service zu starten.
Mit obigem Code geht das leider nicht (Keine Änderung des StartTyps im Dienste-Manager).

Interessant ist außerdem, dass keine Exception ausgelöst wird, wenn die Ini-Datei
mit fehlerhaftem Pfad erzeugt wird, daher meine Lösung mit FileExists().
Armin P. Pressler

BEGIN
...real programmers are using C/C++ - smart developers Delphi;
END;
  Mit Zitat antworten Zitat