Autor Beitrag
ppl
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 53



BeitragVerfasst: Do 06.11.08 21:57 
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 user profile iconNarses: Beiträge zusammengefasst

also nicht falsch verstehen, mit dienst meine ich im taskmanager unter dienste!!


Moderiert von user profile iconNarses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am So 06.05.2012 um 12:12
Ramon
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 107

WIN7
D6 Prof, D7 Prof, D 2009
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 53



BeitragVerfasst: Fr 07.11.08 13:15 
user profile iconRamon hat folgendes geschrieben Zum zitierten Posting springen:

ich meine in der Kommandozeile reicht einfach NET START um alle laufenden Dienste aufzulisten.


EDIT: Brauch hier mal hilfe.

ausblenden 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;
  // Open service manager handle.
  SCManHandle := OpenSCManager(sMachine, nil, SC_MANAGER_CONNECT);
  if (SCManHandle > 0then
  begin
    SvcHandle := OpenService(SCManHandle, sService, SERVICE_QUERY_STATUS);
    // if Service installed
    if (SvcHandle > 0then
    begin
      // SS structure holds the service status (TServiceStatus);
      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


ausblenden 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 user profile iconChristian S.: Code- durch Delphi-Tags ersetzt
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 07.11.08 22:27 
Meinst du da so:
ausblenden Delphi-Quelltext
1:
2:
if ServiceRunning('Computername''NameDesDienstes'then
Label1.Caption := 'Dienst läuft';
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Fr 07.11.08 23:34 
... und dabei ist zu beachten, dass der Dienstname hier nicht der Displayname, sondern der eigentliche Name sein wird.

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."