AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Dienste im Allgemeinen und im Besonderen unter XP
Thema durchsuchen
Ansicht
Themen-Optionen

Dienste im Allgemeinen und im Besonderen unter XP

Ein Thema von UweR · begonnen am 10. Jan 2005 · letzter Beitrag vom 10. Jan 2005
Antwort Antwort
UweR

Registriert seit: 15. Mär 2004
Ort: Bad Marienberg
219 Beiträge
 
Delphi 7 Professional
 
#1

Dienste im Allgemeinen und im Besonderen unter XP

  Alt 10. Jan 2005, 12:41
Hallo Leute,

ich habe das Problem das ich einen Dienst geschrieben habe der eigentlich nichts machen soll außer einen TCP-Server aufmachen und dann RPC-Kommandos auswerten. Unter XP hat dieses gemeint den Dienst wieder anhalten zu können. Als Workaround lasse ich jetzt meinen Dienst die Uhrzeit auslesen und irgendwohin schreiben. Dass funktioniert auch, aber der Dienst krallt sich jetzt Rechenzeit was auch nicht besonders schön ist. Deshalb noch mal meine Frage ob es da nicht eine andere Möglichkeit gibt XP mitzuteilen das es den Dienst gefälligst nicht wieder anhalten soll.

Ich habe auch schon mal probiert nur dann die Uhrzeit auszulesen wenn ich XP unter mir habe, aber sobald ich in meinem Dienst OSVersionEx aufrufe kann ich den Dienst nicht mehr starten. Es kommt diese wunderschöne Meldung mit interner Windowsfehler und an seinen Administrator wenden.

Kann mir irgendjemand helfen oder vielleicht nen Tip geben
Gruß
UweR
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Dienste im Allgemeinen und im Besonderen unter XP

  Alt 10. Jan 2005, 12:44
Ich würde den Grund ermitteln, warum Windows deinen Dienst wieder anhält. Zeig doch mal etwas Quellcode, irgendwas machst du da wohl falsch.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
UweR

Registriert seit: 15. Mär 2004
Ort: Bad Marienberg
219 Beiträge
 
Delphi 7 Professional
 
#3

Re: Dienste im Allgemeinen und im Besonderen unter XP

  Alt 10. Jan 2005, 13:18
Hallo Luckie,

XP hält meinen Dienst mit dem folgenden Hinweis an:

Zitat:
Einige Dienste werden automatisch angehalten wenn sie sich im Leerlauf befinden.
XP hat mit dem Hinweis das sich der Dienst im Leerlauf befindet auch nicht ganz unrecht da er nur einen TCP-Server startet.

W2k läßt ihn einfach durchlaufen.



Den Aufruf von OSVersionEx mag zumindest W2k nicht, XP habe ich gerade nicht vorrätig. Der sieht bei mir so aus:

Delphi-Quellcode:
procedure TCocoControl.ServiceCreate(Sender: TObject);
var
   os : TOSVERSIONINFO;

begin
   asLastLogOff := TStringList.Create;
   try
      os.dwOSVersionInfoSize := SizeOf(os);
      GetVersionEx(os);

      if (os.dwMajorVersion >= 5) and (os.dwMinorVersion >=1) then
         OSXP := TRUE
      else
         OSXP := FALSE;
   except
      on E: Exception do begin
         OSXP := TRUE;
         WriteLog('OSXP.log', E.Message);
      end;
   end;
end; // procedure ServiceCreate
Sobald ich GetVersionEx auskommentiere no Problem. Der Dienst läuft unterm Systemkonto, Rechte sollten also vorhanden sein.
Gruß
UweR
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Dienste im Allgemeinen und im Besonderen unter XP

  Alt 10. Jan 2005, 13:20
Zitat von UweR:
Den Aufruf von OSVersionEx mag zumindest W2k nicht,
Aha. Schön. Und wie äußert sich das? Ich glaube kaum, dass in deinem Log drinne steht " Mag ich nicht."

Und das:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  os : TOSVERSIONINFO;
  OSXP : Boolean;
begin
  try
    os.dwOSVersionInfoSize := SizeOf(os);
    GetVersionEx(os);

    if (os.dwMajorVersion >= 5) and (os.dwMinorVersion >= 1) then
      ShowMessage('XP')
    else
      Showmessage('nicht XP');
  except
    on E: Exception do
    begin
      ShowMessage(e.Message);
    end;
  end;
end;
tut es bei mir in einer normalen Anwendung ganz prima.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
UweR

Registriert seit: 15. Mär 2004
Ort: Bad Marienberg
219 Beiträge
 
Delphi 7 Professional
 
#5

Re: Dienste im Allgemeinen und im Besonderen unter XP

  Alt 10. Jan 2005, 13:54
tut es bei mir in einer normalen Anwendung ganz prima. Bei mir auch, komisch!!!

Es kommt halt die Meldung das der Dienst nicht gestartet werden kann, der Dienst keine Fehler zurück gibt und entweder ein interner Windows- oder Dienstfehler vorliegt.
Gruß
UweR
  Mit Zitat antworten Zitat
Antwort Antwort


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