![]() |
Service Anwedung unter Win Xp SP2 D7 pro
Hallo zusammen
ich versuche nun seit Stunden einen Service Anwendung unter Win XP SP2 am laufen zu bekommen. Benutze D7 Pro 4.453. Ich bekomme den Service installiert und auch gestartet, nur läuft der Service nicht los.
Delphi-Quellcode:
Wie ihr seht was ganz Simples, kann mir jemand helfen oder gibt es Probleme mit Win XP SP2?
UNIT Unit2;
INTERFACE USES Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls; TYPE TForm2 = CLASS(TForm) Timer1: TTimer; PROCEDURE Timer1Timer(Sender: TObject); PROCEDURE FormCreate(Sender: TObject); PROCEDURE WriteLog(sText: STRING); PRIVATE PROCEDURE status4; { Private-Deklarationen } PUBLIC { Public-Deklarationen } END; VAR Form2: TForm2; IMPLEMENTATION {$R *.dfm} { TForm2 } PROCEDURE TForm2.status4; BEGIN WriteLog('Test'); END; PROCEDURE TForm2.Timer1Timer(Sender: TObject); BEGIN status4; END; PROCEDURE TForm2.FormCreate(Sender: TObject); BEGIN IF NOT timer1.Enabled THEN timer1.Enabled := True; END; procedure TForm2.WriteLog(sText: STRING); VAR F: TextFile; s: STRING; BEGIN s := 'Fehlerlog.log'; // das kann nach Belieben angepasst werden IF FileExists(s) THEN BEGIN AssignFile(F, s); Append(F); Writeln(F, DateTimeToStr(Now) + ' : ' + sText); END ELSE BEGIN AssignFile(F, s); Rewrite(F); Writeln(F, DateTimeToStr(Now) + ' : ' + sText + ' (neu)'); END; CloseFile(F); end; END. Danke Bob68 |
Re: Service Anwedung unter Win Xp SP2 D7 pro
Also ich sehr hier nichts was mit einer Service-Anwendung zu tun hätte.
Du hast ein 0815-Formular angelegt. Wie hast Du denn den Service "definiert"/angelegt? Hoffentlich als Service-Anwendung. Und dort wird doch gleich eine Service-Klasse auch mit angelegt (TService1 = class(TService)) |
Re: Service Anwedung unter Win Xp SP2 D7 pro
Hallo,
ich habe eine Service Anwedung erstellet und dann eine Form hinzugefügt. Hier ist die erste Unit vom Service:
Delphi-Quellcode:
So habe ich es immer gemacht und es hat sonst immer geklappt(unter NT).
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs; type TS_Packloesch = class(TService) private { Private-Deklarationen } public function GetServiceController: TServiceController; override; { Public-Deklarationen } end; var S_Packloesch: TS_Packloesch; implementation {$R *.DFM} procedure ServiceController(CtrlCode: DWord); stdcall; begin S_Packloesch.Controller(CtrlCode); end; function TS_Packloesch.GetServiceController: TServiceController; begin Result := ServiceController; end; end. Danke Bob68 |
Re: Service Anwedung unter Win Xp SP2 D7 pro
Ok.
Was meinst du mit: "..., nur läuft der Service nicht los." genau? Wird kein Formular angezeigt? Wird die Logdatei nicht geschrieben? ... |
Re: Service Anwedung unter Win Xp SP2 D7 pro
Hallo,
genau die logdatei wird nicht erstellt als ob der timer nicht auslöst. Habe nun mal alles in die erst Service Unit gesteckt und klappt leider auch nicht.
Delphi-Quellcode:
Der Timer steht auf 4000 aber die Logdatei wird nicht geschrieben.
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs, ExtCtrls; type Tstest = class(TService) Timer1: TTimer; procedure Timer1Timer(Sender: TObject); procedure ServiceCreate(Sender: TObject); private PROCEDURE WriteLog(sText: STRING); procedure start; { Private-Deklarationen } public function GetServiceController: TServiceController; override; { Public-Deklarationen } end; var stest: Tstest; implementation {$R *.DFM} procedure ServiceController(CtrlCode: DWord); stdcall; begin stest.Controller(CtrlCode); end; function Tstest.GetServiceController: TServiceController; begin Result := ServiceController; end; procedure Tstest.start; begin WriteLog('Test'); end; procedure Tstest.WriteLog(sText: STRING); VAR F: TextFile; s: STRING; BEGIN s := 'Fehlerlog.log'; // das kann nach Belieben angepasst werden IF FileExists(s) THEN BEGIN AssignFile(F, s); Append(F); Writeln(F, DateTimeToStr(Now) + ' : ' + sText); END ELSE BEGIN AssignFile(F, s); Rewrite(F); Writeln(F, DateTimeToStr(Now) + ' : ' + sText + ' (neu)'); END; CloseFile(F); end; procedure Tstest.Timer1Timer(Sender: TObject); begin start; end; procedure Tstest.ServiceCreate(Sender: TObject); begin if not Timer1.Enabled then Timer1.Enabled := True; end; end. Danke Bob68 |
Re: Service Anwedung unter Win Xp SP2 D7 pro
Gib die Logdatei mal mit kompletten Pfad an, damit sie nicht irgendwo geschrieben wird.
|
Re: Service Anwedung unter Win Xp SP2 D7 pro
Danke mit kompletter Pfadangabe gehts:)
Bob68 :lol: :lol: :lol: :lol: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:40 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