Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Service/Dienst: Bei Fehler Starttyp auf "stDisable" stellen (https://www.delphipraxis.net/18681-service-dienst-bei-fehler-starttyp-auf-stdisable-stellen.html)

APP 23. Mär 2004 08:47


Service/Dienst: Bei Fehler Starttyp auf "stDisable"
 
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().

APP 31. Mär 2004 07:10

Re: Service/Dienst: Bei Fehler Starttyp auf "stDisable&
 
Hallo,
ich habe leider noch immer keine Lösung dafür :oops:

sakura 31. Mär 2004 08:46

Re: Service/Dienst: Bei Fehler Starttyp auf "stDisable&
 
Ich dachte, ich hätte darauf mal geantwortet :shock: Na ja, also Sache ist die, die Eigenschaft StartType ist nur während der Installation interessant. Willst Du dieses zur Laufzeit ändern musst Du entweder direkt in der Registry "rumschmieren" ( HKLM\SYSTEM\CurrentControlSet\Services\DeinService Name ) oder Dich mal mit der Delphi-Unit WinSvc.pas beschäftigen.

...:cat:...

APP 31. Mär 2004 12:39

Re: Service/Dienst: Bei Fehler Starttyp auf "stDisable&
 
Danke Sakura,
ich werde wohl aus Faulheit in der REG kleistern :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz