Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Nt Service Frage (https://www.delphipraxis.net/45620-nt-service-frage.html)

toyoman 9. Mai 2005 14:12


Nt Service Frage
 
Liste der Anhänge anzeigen (Anzahl: 1)
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. :roll:
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... :wall:

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;

Phistev 9. Mai 2005 14:55

Re: Nt Service Frage
 
Überprüf mal, ob das Formular evtl. mehrfach freigegeben wird, oder ob beim Beenden auf ein schon freigegebenes Objekt (z.B. das Formular oder ein Timer) noch zugegriffen wird.

Luckie 9. Mai 2005 14:58

Re: Nt Service Frage
 
Dir ist klar, dass du mit einem interaktiven Service künstlich eine Sicherheitslücke im System schaffst?

DGL-luke 9. Mai 2005 17:23

Re: Nt Service Frage
 
wenn er nur die zugriffsmöglichkeiten bietet, die im interface/der gui dann auch genutzt werden, und die alle unkritisch sind(z.b. die farbe des desktop verändern :mrgreen: ), dann kann doch nichts schiefgehen. natürlich sollte jede geöffnete lücke - zumindest ab beta stadium - sauberst dokumentiert werden(sowas wie "wenn man an die funktion evilnumber(evil:integer) das integer 666 übergibt, gibt es einen bluescreen. diese funktion wird deshalb in keinen veröffentlichten versionen vorhanden sein.").

mal mein senf dazu.

toyoman 9. Mai 2005 18:00

Re: Nt Service Frage
 
danke dass ihr euch sorgen um "meine" sicherheitslücken macht :wink:

also der service überprüft in einem bestimmten interval "wo" er ist bzw wo der User sitzt. in welchem land bzw welchem IP -Range. aufgrund der Erreichbarkeit von Servern und Diensten auf den Servern wird dann bestimmt ob der User Online oder Offline oder per VPN verbunden ist. :warn:

Ausserdem dient der Service dazu Software zu verteilen über einen speziellen Installer welchen ich hier auch schon mal vorgestellt habe.

Nun kommen noch folgende Funktionen hinzu: :idea:

-Standardclient Image: Der Service merkt wenn der PC das erstemal das Firmennetz erreicht und führt gewissen Lokale Installationen durch (Multilanguagepacks etc). Somit können alle Firmenimages auf die Lokalität angepasst werden, ohne dass ein Admin eingreifen muss.


Konfiguration:
Der Service verwendet lokale INI-Files welche er bei jedem Start vom Netlogon Share des Landes aktualisiert.
:coder2:

DGL-luke 9. Mai 2005 21:23

Re: Nt Service Frage
 
dann pass mal auf, dass dir niemand das netlogon share umleitet. zumindest wenn da auch zugriffsrechte oder ähnliches in den ini-dateien drin sind.

ps: ich sorg mich schon wieder um "deine" sicherheitslücken :stupid:

toyoman 9. Mai 2005 21:33

Re: Nt Service Frage
 
sooo.. jetzt weiss ich aber immer noch nicht warum ich diesen Fehler krieg! :roll:
das ist nämlich ein Fehler keine Sicherheitslücke :lol:

habt ihr denn niemals einen Service programmiert wo ihr ein stinknormales Form anzeigen lässt?

:duck:

NicoDE 10. Mai 2005 09:35

Re: Nt Service Frage
 
Zitat:

Zitat von toyoman
habt ihr denn niemals einen Service programmiert wo ihr ein stinknormales Form anzeigen lässt?

Nein.
(weil TForms, meiner bescheidenen Meinung nach, in Diensten nichts zu suchen haben - ich bin noch nicht mal sicher, ob TForm überhaupt dafür ausgelegt ist...)

toyoman 10. Mai 2005 10:54

Re: Nt Service Frage
 
Zitat:

Zitat von NicoDE
Zitat:

Zitat von toyoman
habt ihr denn niemals einen Service programmiert wo ihr ein stinknormales Form anzeigen lässt?

Nein.
(weil TForms, meiner bescheidenen Meinung nach, in Diensten nichts zu suchen haben - ich bin noch nicht mal sicher, ob TForm überhaupt dafür ausgelegt ist...)


indemfalle wärs schlauer eine externe EXE aufzurufen welche diese interaktiven Aufgaben übernimmt..... oke auch keine schlechte Sache.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz