![]() |
Service mit Parameter straten
Hallo,
kennt jemand eine Möglichkeit einen Service mit einem Parameter zu starten ? Danke |
Re: Service mit Parameter straten
Einen Service kannst du nicht mit Parametern starten. Du kannst die Parameter aber als Datei oder in der Registry ablegen, und der Service liest diese dann beim Start aus.
|
Re: Service mit Parameter straten
Hallo,
im Dienste Panel unter Systemsteuerung/Verwaltung hat man die Möglichkeit unter Eigenschaften einen Startparameter einzugeben. Ich weiss nur nicht wie man im Code an den Parameter kommt. Hat vielleicht jemand eine Idee ? |
Re: Service mit Parameter straten
Vielleicht mit ParamStr(1..x)?
|
Re: Service mit Parameter straten
Zitat:
Delphi-Quellcode:
...:cat:...
for I := 0 to ParamCount do
DoWhatEverWith(Param[I]); |
Re: Service mit Parameter straten
Zitat:
...:cat:... |
Re: Service mit Parameter straten
Hi Sakura,
Du meinst die Param Eigenschaft von TService. Ok. Das funktioniert. Die Frage ist jetzt noch wie man den Parameter reinbekommt. Die Eingabe im Dienste Panel unter Systemsteuerung/Verwaltung ist leider nicht persistent (?). D.h. beim nächsten Starten ist der Parameter wieder weg. Danke |
Re: Service mit Parameter straten
Du kannst mit
![]()
Delphi-Quellcode:
procedure TsrvTest.ServiceAfterInstall(Sender: TService);
var ScmH : SC_HANDLE; SvcH : CARDINAL; NewPath : string; begin ScmH := OpenSCManager(nil, SERVICES_ACTIVE_DATABASE, SC_MANAGER_CONNECT or GENERIC_READ); if ScmH <> 0 then begin SvcH := OpenService(ScmH, pchar(Sender.Name), SERVICE_CHANGE_CONFIG); if SvcH <> 0 then begin NewPath := ParamStr(0)+' /Mein Parameter'; ChangeServiceConfig(SvcH, SERVICE_NO_CHANGE, SERVICE_NO_CHANGE, SERVICE_NO_CHANGE, pchar(NewPath), nil, nil, nil, nil, nil, nil); CloseServiceHandle(SvcH); end; CloseServiceHandle(ScmH); end; end; |
Re: Service mit Parameter straten
Zitat:
|
Re: Service mit Parameter straten
Hi Union,
danke für den Code. Leider funktioniert's bei mir nicht. :cry: Wenn ich den Parameter über das das Dienst Panel manuell eingebe, dann kann ich den Parameter über das Service-Objekt auslesen:
Delphi-Quellcode:
s := BCService_Ctrl.param[0] // hier bekomme ich den kompletten Pfad inkl. exe s := BCService_Ctrl.param[1]; // und hier den Parameter Nach dem Aufruf deines Codes
Delphi-Quellcode:
Wie greiftst Du auf den Parameter vom Code aus zu ?s := BCService_Ctrl.param[0] // hier bekomme jetzt den Namen des Service-Objekts s := BCService_Ctrl.param[1]; // Listenindex überschreitet das Maximum Danke |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:54 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