Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Applikation als NT Service (System Dienst) unter XP starten (https://www.delphipraxis.net/3702-applikation-als-nt-service-system-dienst-unter-xp-starten.html)

s14 19. Mai 2003 12:33

Ich weis ja nicht ob's noch interessiert, aber mit dem Tool "Srvany.exe" aus dem Resource Kit von Microsoft kann eine normale Applikation auch als Dienst gestartet werden.

Gruß
s14

Chewie 19. Mai 2003 12:35

Zitat:

Zitat von Captnemo
Hi Chewie,

Hast du das schon mal gemacht?

Meiner Meinung nach basiert eine Anwendung ja auf TApplication und ein Service auf TService. Ist das den in einem Programm vereinbar?

Obwohl wenn man beide Klassen implementiert? Hm, ich werde das mal ausprobieren, mal sehen obs klappt.

Wenn du dazu ein Beispielcode hast, dann poste ihn doch mal.

Ich kann dir da leider wenig weiterhelfen, ich hab bisher noch nie einen Service geschrieben. Aber ich schätz mal, es wird schwierig, eine Anwendung als "normale" Anwendung laufen zu lassen und nur bei Bedarrf als Service zu installieren und zu starten, wenn man ein Service von Delphi (über Datei->Neu->Service) erstellen lässt. Aber wie gesagt, ich weiß es nicht. Mögllich ist es auf jeden Fall, die Frage ist eben nur, wie.

Captnemo 19. Mai 2003 12:35

War bekannt (zumindest mir :mrgreen: ).

Geht auch, ist aber nicht dasselbe. Eleganter wäre es wenn Dienst und Anwendung in einem Prog wäre.

magicshadow 21. Mai 2003 15:47

und wie immer ist es so simpel :)

Im nachvolgenden code wird nach dem startparameter "/n" gesucht, sollte dieser vorhanden sein (beim start mit angegeben) soll als normale exe gestartet werden, wenn nicht soll als service gestartet werden.
Code:
program exeservice;

uses
  SvcMgr, forms, sysutils,
  Unit1 in 'Unit1.pas' {Service1: TService};

{$R *.RES}

begin
  SvcMgr.Application.Initialize;
  SvcMgr.Application.CreateForm(TService1, Service1);
  if FindCmdLineSwitch('n', ['-', '/'], True) then
      forms.Application.Run;
  else
      SvcMgr.Application.Run;
end.
Es sollte nun ein kinderspiel sein am angang zu überprüfen, ob die exe selbst als dienst instaliert ist, wenn ja dann soll auch als solcher gestartet werden, wenn nicht startet die exe als Anwendung. :)

Noch fragen?

FriFra 21. Jul 2003 11:00

Re: Applikation als NT Service (System Dienst) unter XP star
 
Also ich habe das Problem anders gelöst. Mein Problem war, das ich mehrere Programme zum Service machen wollte, allerdings ist das bei ferigen Programmen nicht sooo trivial wie es auf den ersten Blick erscheinen mag. Deshalb habe ich mir einen "ServiceWrapper" geschrieben, welcher beliebige exe's auf dem Systemkonto laufen lässt.
Es werden auch mehrere exe's auf einmal unterstützt. Wenn das letzte dieser Programme nicht mehr läuft, dann beendet sich der Service selbsständig.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:15 Uhr.
Seite 3 von 3     123   

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 by Thomas Breitkreuz