AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Windows Dienst aus Delphi 2006 startet nicht

Ein Thema von Cyberbob_at_tot · begonnen am 4. Sep 2006 · letzter Beitrag vom 4. Sep 2006
Antwort Antwort
Cyberbob_at_tot

Registriert seit: 30. Apr 2003
Ort: Ahlen
270 Beiträge
 
Delphi 2006 Professional
 
#1

Windows Dienst aus Delphi 2006 startet nicht

  Alt 4. Sep 2006, 08:27
Guten Morgen zusammen,
hoffe ich habe das Thema hier richtig hineingepackt. Ansonsten sorry.

Es geht dadrum, ich habe unter Delphi 2006 Win32 einen Windows Dienst programmiert. Ist soweit ja nicht schwer. Habe die Proceduren Start, Stop, Pause usw. einfach mit einer MSGBOX versehen. Wenn der Dienst läuft soll er einfach jede 5 Sekunden ein Popup ausgeben. Nur zum Test.

Habe dann den Dienst per Parameter "- install" installiert. Man sieht meinen Service auch unter Dienste in Windows, aber wenn ich diesen Dienst nun starten will. Dauert das sehr sehr lange und nach einer Zeit sagt Windows das der Dienst nicht mehr reagiert. (Windows XP Home und Pro getestet)

Kennt jemand das Problem ?

MFG

Cyberbob
-----------------------------------------------------------
The only winning move is not to play ! (Wargames)
-----------------------------------------------------------
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Windows Dienst aus Delphi 2006 startet nicht

  Alt 4. Sep 2006, 08:51
zeig vllt mal bissl code.
Hast du eine OnExecute-Prozedur in deinem Thread?
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Cyberbob_at_tot

Registriert seit: 30. Apr 2003
Ort: Ahlen
270 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Windows Dienst aus Delphi 2006 startet nicht

  Alt 4. Sep 2006, 08:57
OnExecute habe ich noch garnicht benutzt. Wollte nur ein Testprogramm schreiben. Hier der Code...

Code:
unit Unit1;

interface

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

type
  TService1 = class(TService)
    Timer1: TTimer;
    procedure ServiceStop(Sender: TService; var Stopped: Boolean);
    procedure Timer1Timer(Sender: TObject);
    procedure ServiceBeforeInstall(Sender: TService);
    procedure ServiceAfterInstall(Sender: TService);
    procedure ServiceContinue(Sender: TService; var Continued: Boolean);
    procedure ServicePause(Sender: TService; var Paused: Boolean);
    procedure ServiceStart(Sender: TService; var Started: Boolean);
  private
    { Private-Deklarationen }
  public
    function GetServiceController: TServiceController; override;
    { Public-Deklarationen }
  end;

var
  Service1: TService1;

implementation

{$R *.DFM}

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

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

procedure TService1.ServiceAfterInstall(Sender: TService);
begin
Showmessage('Installiert');
end;

procedure TService1.ServiceBeforeInstall(Sender: TService);
begin
Showmessage('Install wird gestartet');
end;

procedure TService1.ServiceContinue(Sender: TService; var Continued: Boolean);
begin
Timer1.Enabled:=true;
Showmessage('wiederaufgenommen');
end;

procedure TService1.ServicePause(Sender: TService; var Paused: Boolean);
begin
Timer1.Enabled:=false;
Showmessage('Pausiert');
end;

procedure TService1.ServiceStart(Sender: TService; var Started: Boolean);
begin
Timer1.Enabled:=true;
Showmessage('Gestartet');
end;

procedure TService1.ServiceStop(Sender: TService; var Stopped: Boolean);
begin
Timer1.Enabled:=false;
Showmessage('gestopt');
end;

procedure TService1.Timer1Timer(Sender: TObject);
begin
     Showmessage('Aktion');
end;

end.
-----------------------------------------------------------
The only winning move is not to play ! (Wargames)
-----------------------------------------------------------
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

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

Re: Windows Dienst aus Delphi 2006 startet nicht

  Alt 4. Sep 2006, 09:10
Zitat von Cyberbob_at_tot:
Habe die Proceduren Start, Stop, Pause usw. einfach mit einer MSGBOX versehen. Wenn der Dienst läuft soll er einfach jede 5 Sekunden ein Popup ausgeben. Nur zum Test.
Ein Dienst läuft in einer anderen WindowsStation und somit auch auf einem anderen Desktop. Wenn du iohn nicht als Interaktivendienst installierst, wirst du nie eine Messagebox sehen. Interaktivedienste sind zu dem eine Sicherheitslücke und werden ab Windows Vista nicht mehr unterstützt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Cyberbob_at_tot

Registriert seit: 30. Apr 2003
Ort: Ahlen
270 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Windows Dienst aus Delphi 2006 startet nicht

  Alt 4. Sep 2006, 09:22
Das Problem ist ja nicht, das ich die Msgbox nicht sehe, sondern das der Dienst nicht starten will.

Im Debug Mode funktioniert das mit den Boxen, auch beim Installieren bzw Deinstallieren kommen die Boxen.

Genauergesagt bekomme ich beim Start des Dienst folgende Fehlermeldung:

"Fehler 1053: Der Dienst antwortete nicht rechtzeitig auf die Start- oder Steuerungsanforderung"
-----------------------------------------------------------
The only winning move is not to play ! (Wargames)
-----------------------------------------------------------
  Mit Zitat antworten Zitat
Cyberbob_at_tot

Registriert seit: 30. Apr 2003
Ort: Ahlen
270 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Windows Dienst aus Delphi 2006 startet nicht

  Alt 4. Sep 2006, 09:58
@Luckie
Habe deine Aussage erst beim 3ten Mal lesen verstanden. Muss "Interactive" auf true setzen damit kein Fehler mehr kommt. Danke für die Hilfe!
-----------------------------------------------------------
The only winning move is not to play ! (Wargames)
-----------------------------------------------------------
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#7

Re: Windows Dienst aus Delphi 2006 startet nicht

  Alt 4. Sep 2006, 10:13
ja so geht es ABBBBER das ist eine große sicherheitslücke wenn du des auf true setzt, also ist davon abzuraten.

Schreib lieber alles in eine Log und gib es nicht bei showMessage aus
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
Cyberbob_at_tot

Registriert seit: 30. Apr 2003
Ort: Ahlen
270 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Windows Dienst aus Delphi 2006 startet nicht

  Alt 4. Sep 2006, 10:17
Sollte ja auch nur zum testen sein, der Dienst soll ja komplett im Hintergrund laufen, nur die Logs gehen eben ein eine Datei!
-----------------------------------------------------------
The only winning move is not to play ! (Wargames)
-----------------------------------------------------------
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#9

Re: Windows Dienst aus Delphi 2006 startet nicht

  Alt 4. Sep 2006, 12:15
dieses problem habe ich auch, wenn ich das onpause event mit einer procedure belegt habe.

mach einfach mal alle events ausser onstart und onstop weg.
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 05:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf