Thema: Delphi Nt Service Frage

Einzelnen Beitrag anzeigen

toyoman

Registriert seit: 2. Jun 2003
323 Beiträge
 
Delphi 2010 Enterprise
 
#1

Nt Service Frage

  Alt 9. Mai 2005, 15:12
Hallo Leute

Ich habe einen NT Service programmiert, welcher zwar interaktiv mit SYSTEM Account läuft, jedoch habe ich bis jetzt nichts angezeigt (kein Form nichts).
Nun muss ich aber doch ein Form anzeigen.
Das funzt eigentlich auch, aber beim beenden des Service krieg ich eine Zugriffsverletzung im Service. Der Service beendet dann zwar "normal" aber der Fehler irritiert mich stark. Woran könnte das liegen? Ich öffne das Form im Execute-Teil des Service und beim beenden des Service ist es schon längst wieder geschlossen!

seht euch den Screenshot an.

Was man noch dazu sagen muss... dieser fehler tritt nur auf wenn ich das Formular öffne (form5.show). Wenn ich diesen Befehl aus meinem Execute Teil des Service weglasse ist alles wieder ok...

woran könnte das liegen?

gruss und danke schonmal

hier der Codeteil:

Delphi-Quellcode:
procedure Thiltiservice.ServiceExecute(Sender: TService);
begin
   if wfirststatus=1 then // Erster Start des Service
   begin
         logfileschreiben('This is the first time the service comes up! Please choose your location...');
         form5.Show;
   end else
   begin
         logfileschreiben('This service is not the first time started!');
   end;
    logfileschreiben('Service >> Execute');
    logfileschreiben('Service-Timing (ms): '+inttostr(timer1.interval));
    timer1.Enabled:=true; //Timer starten
    if timer1.Enabled=true then
    begin
        logfileschreiben('Service-Timer already enabled');
    end else
    begin
        logfileschreiben('Service-Timer not enabled!');
    end;
    while not hiltiservice.Terminated do
    begin
            //---Service Status abchecken----
             servicethread.ProcessRequests(true);
            //---Service Status abchecken----
    end;
    timer1.enabled:=false;
    timer2.Enabled:=false;
    logfileschreiben('Service-Timer disabled');
    logfileschreiben('Polling-Timer disabled');
end;
Miniaturansicht angehängter Grafiken
fehler_669.gif  
  Mit Zitat antworten Zitat