![]() |
Herausfinden ob ein bestimmter Service installiert ist
hallo
ich möchte möglichst einfach rausfinden ob ein bestimmter service installiert ist, bevor ich den Status diese Service abfrage. wie ich den Status des Service abfrage ist mir klar und auch schon eingebaut, nur hab ich das Problem, dass wenn der Service NICHT installiert ist, die Abfrage als Resultat bringt der Service sei "running" also er laufe, was natürlich quatsch ist. |
Re: Herausfinden ob ein bestimmter Service installiert ist
Folgende Funktion liefert E_FAIL zurück, wenn der Service nicht installiert ist. Getestet unter Win2003.
Delphi-Quellcode:
...:cat:...
uses
WinSvc; function ServiceGetStatus(sMachine, sService: AnsiString): Integer; var srvManager,srvHandle: SC_Handle; srvStatus: TServiceStatus; hStat: Integer; begin hStat := E_FAIL; srvManager := OpenSCManager(PChar(sMachine), nil, SC_MANAGER_CONNECT); if srvManager > 0 then begin srvHandle := OpenService(srvManager, PChar(sService), SERVICE_QUERY_STATUS); if srvHandle > 0 then begin if QueryServiceStatus(srvHandle, srvStatus) then hStat := srvStatus.dwCurrentState; CloseServiceHandle(srvHandle); end; CloseServiceHandle(srvManager); end; Result := hStat; end; |
Re: Herausfinden ob ein bestimmter Service installiert ist
Zitat:
Ich versteh das nicht... |
Re: Herausfinden ob ein bestimmter Service installiert ist
Zitat:
...:cat:... |
Re: Herausfinden ob ein bestimmter Service installiert ist
Warum nicht EnumServicesStatus(Ex)?
Alles andere ist nur eine Krücke. (BTW, Handles sind keine Integer - ein Vergleich auf > 0 ist meiner bescheidenen Meinung nach 'unpassend') |
Re: Herausfinden ob ein bestimmter Service installiert ist
Zitat:
Zitat:
|
Re: Herausfinden ob ein bestimmter Service installiert ist
Zitat:
|
Re: Herausfinden ob ein bestimmter Service installiert ist
Schonmal EnumServicesStatusEx() oder EnumServicesStatus() versucht? Oder muß man hier immer sofort ein mundgerechtes Beispiel dazugeben?!
|
Re: Herausfinden ob ein bestimmter Service installiert ist
Zitat:
Ich habe nicht nach einem mundgerechten Beispiel gesucht sondern nach einer Möglichkeit. Solche Aussagen liebt man wirklich :roll: |
Re: Herausfinden ob ein bestimmter Service installiert ist
Ja das war ein Hinweis schon weiter oben von Nico. Aber du ignorierst offenbar Nicos Vorschlag geflissentlich, weil du dann die Doku durchlesen müßtest o.ä?!
Ich werde mich mal eben an ein kleines Beispiel setzen, damit du nicht zu sehr suchen mußt ... dauert ein paar Minuten. Also Geduld. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:20 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