![]() |
Windows Dienst aus Delphi 2006 startet nicht
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 |
Re: Windows Dienst aus Delphi 2006 startet nicht
zeig vllt mal bissl code.
Hast du eine OnExecute-Prozedur in deinem Thread? |
Re: Windows Dienst aus Delphi 2006 startet nicht
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. |
Re: Windows Dienst aus Delphi 2006 startet nicht
Zitat:
|
Re: Windows Dienst aus Delphi 2006 startet nicht
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" |
Re: Windows Dienst aus Delphi 2006 startet nicht
@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! |
Re: Windows Dienst aus Delphi 2006 startet nicht
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 |
Re: Windows Dienst aus Delphi 2006 startet nicht
Sollte ja auch nur zum testen sein, der Dienst soll ja komplett im Hintergrund laufen, nur die Logs gehen eben ein eine Datei!
|
Re: Windows Dienst aus Delphi 2006 startet nicht
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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:54 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