AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

sMachine und sService ???

Ein Thema von daredd · begonnen am 27. Feb 2008 · letzter Beitrag vom 27. Feb 2008
Antwort Antwort
Seite 1 von 2  1 2      
daredd

Registriert seit: 2. Apr 2006
433 Beiträge
 
#1

sMachine und sService ???

  Alt 27. Feb 2008, 20:25
Guten abend,

also ich bin schon eine menge weiter gekommen was das Statusabfragen von Diensten angeht. Nur habe ich noch eine Frage.
In der function:
function ServiceGetStatus(sMachine, sService: PChar): DWORD; Muss man doch für sMachine den Namen den Namen der CPU über die der Service läuft und für sService den Namen des Dienstes angeben oder?
Woher bekomme ich den Namen von sMachine raus?
Bei sService wird es warscheinlich der name wie er in der Registry steht sein oder?

Und beim Compelieren sagt mir der Compiler:

[Error] Data.pas(196): Undeclared identifier: 'SC_Handle'
[Error] Data.pas(197): Undeclared identifier: 'TServiceStatus'
[Error] Data.pas(202): Undeclared identifier: 'OpenSCManager'
[Error] Data.pas(202): Undeclared identifier: 'SC_MANAGER_CONNECT'

wenn ich das hier in meine Source einbaue:
Delphi-Quellcode:
function ServiceGetStatus(sMachine, sService: PChar): DWORD;
  {******************************************} 
  {*** Parameters: ***} 
  {*** sService: specifies the name of the service to open
  {*** sMachine: specifies the name of the target computer
  {*** ***}
 
  {*** Return Values: ***} 
  {*** -1 = Error opening service ***} 
  {*** 1 = SERVICE_STOPPED ***} 
  {*** 2 = SERVICE_START_PENDING ***} 
  {*** 3 = SERVICE_STOP_PENDING ***} 
  {*** 4 = SERVICE_RUNNING ***} 
  {*** 5 = SERVICE_CONTINUE_PENDING ***} 
  {*** 6 = SERVICE_PAUSE_PENDING ***} 
  {*** 7 = SERVICE_PAUSED ***} 
  {******************************************} 
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 > 0) then
  begin
    SvcHandle := OpenService(SCManHandle, sService, SERVICE_QUERY_STATUS);
    // if Service installed
    if (SvcHandle > 0) then
    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 IsServiceRunning(sMachine, sService: PChar): Boolean;
begin
  Result := SERVICE_RUNNING = ServiceGetStatus(sMachine, sService);
end;

function IsServiceInstalled(sMachine, sService: PChar): Boolean;
begin
  Result := -1 <> ServiceGetStatus(sMachine, sService); // genau hier sagt der Compiler liefert immer True bzw. False
end;
[edit=SirThornberry]Beiträge zusammengeführt - nächstes mal bitte verwenden - Mfg, SirThornberry[/edit]
---------------------------------------------------------------------------
Mein Vista-Kind bringt frischen Wind

Gruß DaRedd aka The Red Dragon
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: sMachine und sService ???

  Alt 27. Feb 2008, 20:38
Machine ist der Namen des Computers. Also bei dir wohl der lokale Rechner. Über Netzwerk kann man das auch auf anderen Rechnern abfragen. Die Compiler-Fehler bekommst du weil du wohl die entsprechenden Dateien in den Uses nicht eingetragen hast. Welche Delphiversion verwendest du?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
daredd

Registriert seit: 2. Apr 2006
433 Beiträge
 
#3

Re: sMachine und sService ???

  Alt 27. Feb 2008, 20:41
Ich benutze Delphi6
---------------------------------------------------------------------------
Mein Vista-Kind bringt frischen Wind

Gruß DaRedd aka The Red Dragon
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: sMachine und sService ???

  Alt 27. Feb 2008, 20:43
personal, professional oder enterprice? Je nach dem welche Version du verwendest sind die entsprechenden Header-Dateien für Services vorhanden oder nicht. SC_Handle ist übrigens nur ein normales Handle und nur der Übersichtlichkeit als eigener Typ declariert.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
daredd

Registriert seit: 2. Apr 2006
433 Beiträge
 
#5

Re: sMachine und sService ???

  Alt 27. Feb 2008, 20:59
Ich habe Delphi6 Enterprise! Also deklariere ich einfach SC_Handle in einfach nur Handle um und dann gehts?
---------------------------------------------------------------------------
Mein Vista-Kind bringt frischen Wind

Gruß DaRedd aka The Red Dragon
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: sMachine und sService ???

  Alt 27. Feb 2008, 21:07
bei der Enterprice brauchst du einfach nur die entsprechende Unit in den Uses eintragen.
Binde einfach WinSVC ein
Delphi-Quellcode:
unit xyz;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, WinSVC;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
daredd

Registriert seit: 2. Apr 2006
433 Beiträge
 
#7

Re: sMachine und sService ???

  Alt 27. Feb 2008, 21:10
Ok danke erstmal! Das Compelieren klappt, nun weiss ich aber immer noch nicht was ich unter sMachine und sService eingeben soll?
---------------------------------------------------------------------------
Mein Vista-Kind bringt frischen Wind

Gruß DaRedd aka The Red Dragon
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#8

Re: sMachine und sService ???

  Alt 27. Feb 2008, 21:14
für sMachine kannst du nil übergeben (bedeutet das du zur lokalen Maschiene verbinden willst) und bei sService musst du den Namen deines Dienstes übergeben (nicht den Displayname sondern den richtigen Namen)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
daredd

Registriert seit: 2. Apr 2006
433 Beiträge
 
#9

Re: sMachine und sService ???

  Alt 27. Feb 2008, 21:25
Jetzt bekomme ich aber wenn ich das hier mache:

Delphi-Quellcode:
procedure TDM.ConnectTuneDatabase;
begin
     while IsServiceInstalled(nil, InterBaseServer) and IsServiceInstalled(nil, InterBaseGuardian)
     do
     if ConnectToDatabase(dbTune, SlashSep(BasePath, 'data\d1.gdb')) then begin
        OpenTuneTables(True);
     end;
     end;
end;
diese Fehlermeldung:

[Error] Data.pas(243): Undeclared identifier: 'InterBaseServer'
[Error] Data.pas(243): Undeclared identifier: 'InterBaseGuardian'

Wieso muss ich die nochmal deklarieren?? Und als was?
---------------------------------------------------------------------------
Mein Vista-Kind bringt frischen Wind

Gruß DaRedd aka The Red Dragon
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#10

Re: sMachine und sService ???

  Alt 27. Feb 2008, 21:32
ich vermute die Funktionen erwarten strings. somit musst du InterBaseServer in hochkommes (') setzen. Allerdings gehört das nicht mehr zur eigentlichen Frage. Mache bitte für neue Fragen ein neues Thema auf
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz