AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi-Programm als Dienst

Ein Thema von gkaeberich · begonnen am 7. Mai 2004 · letzter Beitrag vom 8. Mai 2004
Antwort Antwort
Seite 1 von 2  1 2      
gkaeberich

Registriert seit: 21. Mai 2003
Ort: Friedrichsdorf
59 Beiträge
 
Delphi 6 Professional
 
#1

Delphi-Programm als Dienst

  Alt 7. Mai 2004, 15:53
Hallo,

ich habe ein Delphi-Programm, das ich als Dienst laufen lassen möchte. Es hat soweit alles geklappt,
ich habe eine Service-Application erzeugt, die entsprechenden Units in das Projekt eingebunden und compiliert. Den Dienst habe ich dann mit name /install eingerichtet - hat auch geklappt. Im Taskmanager sehe ich auch mein Programm als Prozess laufen.Ich kann den Dienst auch starten und beenden, aber jetzt kommt mein Problem:

Das Programm besteht aus einem Formular form1, das auch angezeigt werden soll und das wird es leider nicht.

Wie kann ich das Formular mit dem Start des Dienstes auch sichtbar werden lassen ?

Danke

Günther Käberich
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
934 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

Re: Delphi-Programm als Dienst

  Alt 7. Mai 2004, 15:58
Hallo gkaeberich,

Dein Dienst muss interaktiv mit Desktop arbeiten dürfen. Also doppelklick auf dem Dienst und
das Häckchen bei 'Anmelden-> Datenaustausch zwischen Dienst und Desktop zulassen' setzen.
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#3

Re: Delphi-Programm als Dienst

  Alt 7. Mai 2004, 15:59
So müsste es eigentlich gehen:
Delphi-Quellcode:
var
  MyForm: TForm1;

procedure TService1.ServiceStart(Sender: TService; var Started: Boolean);
begin
  Application.CreateForm(TForm1, MyForm);
  MyForm.Show;
end;

procedure TService1.ServiceStop(Sender: TService; var Stopped: Boolean);
begin
  MyForm.Free;
end;
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
gkaeberich

Registriert seit: 21. Mai 2003
Ort: Friedrichsdorf
59 Beiträge
 
Delphi 6 Professional
 
#4

Re: Delphi-Programm als Dienst

  Alt 7. Mai 2004, 16:20
Hallo,

vielen Dank für den Code, aber ich weiß nicht so genau, wo ich den platzieren soll - mein Programm heißt project und hat eine unit1

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs;

type
  TService1 = class(TService)
  private
    { Private-Deklarationen }
  public
    function GetServiceController: TServiceController; override;
    { Public-Deklarationen }
  end;

var
  Service1: TService1;

implementation

uses abgleich_Unit;

{$R *.DFM}

procedure ServiceController(CtrlCode: DWord); stdcall;
begin
  Service1.Controller(CtrlCode);
end;

function TService1.GetServiceController: TServiceController;
begin
  Result := ServiceController;
end;

end.

Der Rest ist in der unit abgleich_unit mit dem Formular form1, Wo also setze ich den beschriebenen Code ein ?

Danke

Günther

[edit=thomasdrewermann]Delphitags eingebaut Mfg, thomasdrewermann[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#5

Re: Delphi-Programm als Dienst

  Alt 7. Mai 2004, 16:27
Also, erstmal, verwende das [delphi]-Tag. Dadurch wird der Code um einiges lesbarer. Du musst nur die Ereignisse ServiceStart und ServiceStop implementieren, das geht über den Objektinspektor.
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
gkaeberich

Registriert seit: 21. Mai 2003
Ort: Friedrichsdorf
59 Beiträge
 
Delphi 6 Professional
 
#6

Re: Delphi-Programm als Dienst

  Alt 7. Mai 2004, 16:43
Hallo,

sorry wegen des fehlenden Delphi-Tags. Die beiden Ereignisprozeduren hatte ich schon vorher ausprobiert, aber ohne Erfolg. Der dort hineingesetzte Code führt jetzt beim Starten des Dienstes dazu, das eine Meldung erscheint, der Dienst würde gestartet aber sofort wieder angehalten - mein Programmfenster Programms erscheint nicht.

Günther
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#7

Re: Delphi-Programm als Dienst

  Alt 7. Mai 2004, 18:21
Ja, ich werde mir das Problem mal ansehen, ich hab zur Zeit aber nicht viel Zeit...vielleicht weiß jemand anderes noch eine Lösung..
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Delphi-Programm als Dienst

  Alt 7. Mai 2004, 20:06
Alle schimpfen sie über die Sicherheitslücken in Windows, habe aber keinen Skrupel selbst welche nachträglich einzubauen. Jeder interaktive Dienst bedeutet eine neue Sicherheitslücke im System. Selbst MS rät davon ab interaktive Dienste zu nutzen.

Was hast du denn vor? Warum muss dein Dienst interaktiv sein und was ist, wenn kein Benutzer angemeldet ist? Oder ein Benutzer mit weniger Rechrten?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
gkaeberich

Registriert seit: 21. Mai 2003
Ort: Friedrichsdorf
59 Beiträge
 
Delphi 6 Professional
 
#9

Re: Delphi-Programm als Dienst

  Alt 7. Mai 2004, 22:40
Hallo,

mein Programm überwacht in einem festgelegten Zeitrythmus, ob in einer bestimmten Datei eine Änderung durch einen Benutzer durchgeführt wurde und kopiert dann einige Daten zu einem anderen Verzeichnis, wo ein Programm liegt, das diese Daten immer möglichst aktuell benötigt. Die Aktionen meines Programms werden protokolliert und ich möchte gerne in einer Listbox die Aktivitäten beobachten, diese speichern oder löschen. Das das Programm auf einem Server laufen soll, an dem normalerweise kein User angemeldet ist, kenne ich nur die Möglichkeit, dieses als Dienst im Systemkonto laufen zu lassen.

Günther
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Delphi-Programm als Dienst

  Alt 7. Mai 2004, 23:23
Dann lass den Dienst eine Protokolldatei schreiben, die du mit einer GUI Anwendung auslist und anzeigst.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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