AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Daten aus der Registry lesen mit TService
Thema durchsuchen
Ansicht
Themen-Optionen

Daten aus der Registry lesen mit TService

Ein Thema von fips0705 · begonnen am 28. Mär 2007 · letzter Beitrag vom 13. Apr 2007
 
fips0705

Registriert seit: 13. Sep 2006
45 Beiträge
 
#1

Daten aus der Registry lesen mit TService

  Alt 28. Mär 2007, 09:46
Hallo,

ich versuche einen NT-Dienst zu schreiben, in dem ich prüfe ob ein bestimmter Rechner noch über einen Ping im Netzwerk zu erreichen ist. Dies funktioniert auch sehr gut. Der Dienst lässt sich starten und stoppen, nur wenn ich die gespeicherten Daten aus der Registry lesen will tut sich gar nichts. Er liest die Daten nicht.
Wenn ich den Abschitt für das lesen der Registry deaktiviere, funktioniert die Routine, so wie jetzt wird der Timer nicht vollständig durchlaufen.
Oder kann man im TService nicht in der Registry lesen.
Wo habe ich da einen Denkfehler.
Delphi-Quellcode:
 

//------------------------------------------------------------------------------
// Arbeitsroutine

procedure TService.Timer1Timer(Sender: TObject);
var
  Regi: TRegistry;

const
FileName = 'c:\temp\pinglog.txt';

begin
If RegRead=True then
begin

  Regi := TRegistry.Create;
 try
  Regi.RootKey := HKEY_LOCAL_MACHINE;
  if Regi.OpenKey('SOFTWARE\JF\AutoDown', True) then
   begin
    MIP:=regist.ReadString('IP');
    MZeit:=regist.ReadString('Zeit');
   end
  finally
   regist.Free;
 end;



if MIP = 'then
 begin
     MIP := '127.0.0.1';
     MZeit := '30';
 end;

// ReceiveTimeout einstellen
 ICMP_Service.ReceiveTimeout := 1000;
// Zähler für Shutdown auf null setzen;
 MZaehler:=0;
 RegRead:=False;
end;

AssignFile(f,FileName);
if FileExists(FileName) then Append(f)
else Rewrite(f);

// Ping starten

ICMP_Service.Host := MIP;
// Ping senden
ICMP_Service.Ping;

if ICMP_Service.ReplyStatus.FromIpAddress = '0.0.0.0then
  begin
  if MZaehler <= strtoint(MZeit) then
    begin
     MZaehler:=MZaehler+1;
     IF MZaehler < strtoint(MZeit) then
       writeln(f,inttostr(Mzaehler)+' Ping an IP ' +MIP + ' nicht i.o. ' + datetimetostr(now()))
      else
       begin
       writeln(f,'Shutdown wird eingeleitet '+ inttostr(Mzaehler)+' Ping an IP ' +MIP + ' nicht i.o. ' + datetimetostr(now()));
       CloseFile(f);
// ExWindows(EWX_Poweroff); //Herunterfahren und Ausschalten
       end;
      end;
  end
else
  begin
// Zähler für Shutdown auf 0 setzen;
    MZaehler:=0;
    writeln(f,'Ping an IP ' +ICMP_Service.ReplyStatus.FromIpAddress + ' ok.');

  end;

CloseFile(f);
end;
  Mit Zitat antworten Zitat
 


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:20 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