![]() |
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:
Ich möchte, dass wenn ein Fehler auftritt, der StartType auf stDisabled gesetzt wird,
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; 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(). |
Re: Service/Dienst: Bei Fehler Starttyp auf "stDisable&
Hallo,
ich habe leider noch immer keine Lösung dafür :oops: |
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:... |
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 09:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz