Entwickler-Ecke
Windows API - Dienst checken, läuft oder läuft nicht?
ppl - Do 06.11.08 21:57
Titel: Dienst checken, läuft oder läuft nicht?
Moin, als anfänger arbeite ich gerade an einen programm das anzeigt welches System läuft, was ein antivirus programm läuft,
nun hänge ich vor dem problem das ich gerne auslesen möchte ob der dienst zb Kaspersky Internet Security läuft, damit das auch angezeigt werden kann, nur leider weiß ich vorne und hintern nicht wie ich anfangen soll das auszuelesen,
weiß hier einer um rat?
Moderiert von
Narses: Beiträge zusammengefasst
also nicht falsch verstehen, mit dienst meine ich im taskmanager unter dienste!!
Moderiert von
Narses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am So 06.05.2012 um 12:12
Ramon - Fr 07.11.08 10:21
Hey ho,
ich meine in der Kommandozeile reicht einfach NET START um alle laufenden Dienste aufzulisten.
Vielleicht hilft dir das weiter.
Gruß
Ramon
ppl - Fr 07.11.08 13:15
Ramon hat folgendes geschrieben : |
ich meine in der Kommandozeile reicht einfach NET START um alle laufenden Dienste aufzulisten.
|
EDIT: Brauch hier mal hilfe.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30:
| function ServiceGetStatus(sMachine, sService: PChar): DWORD;
var SCManHandle, SvcHandle: SC_Handle; SS: TServiceStatus; dwStat: DWORD; begin dwStat := 0; SCManHandle := OpenSCManager(sMachine, nil, SC_MANAGER_CONNECT); if (SCManHandle > 0) then begin SvcHandle := OpenService(SCManHandle, sService, SERVICE_QUERY_STATUS); if (SvcHandle > 0) then begin if (QueryServiceStatus(SvcHandle, SS)) then dwStat := ss.dwCurrentState; CloseServiceHandle(SvcHandle); end; CloseServiceHandle(SCManHandle); end; Result := dwStat; end;
function ServiceRunning(sMachine, sService: PChar): Boolean; begin Result := SERVICE_RUNNING = ServiceGetStatus(sMachine, sService); end; |
irgedendwie komm ich dort nicht weiter, ich möchte gerne folgendes haben, das der mir im label anzeigt welches prozessleuft, ach folgendem prinzip
Delphi-Quelltext
1: 2:
| if DIENSTExists('Windows-Firewall') then begin Label5.Caption := 'Dienst Aktiv'; |
aber irgendwas klappt da nicht so weil ich net weiß was hier hin kommen muss " if DIENSTExists('Windows-Firewall')"
Moderiert von
Christian S.: Code- durch Delphi-Tags ersetzt
Delete - Fr 07.11.08 22:27
Meinst du da so:
Delphi-Quelltext
1: 2:
| if ServiceRunning('Computername', 'NameDesDienstes') then Label1.Caption := 'Dienst läuft'; |
Martok - Fr 07.11.08 23:34
... und dabei ist zu beachten, dass der Dienstname hier nicht der Displayname, sondern der eigentliche Name sein wird.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!