![]() |
Re: Service debuggen
Zitat:
|
Re: Service debuggen
was brauchst du denn noch? ich hab doch den gesamten Quelltext gepostet (1. Seite).
|
Re: Service debuggen
Zitat:
|
Re: Service debuggen
welche Unit meinst du denn? Ich hab den kompletten Quelltext der Unit von meinem Service doch schon gepostet.
|
Re: Service debuggen
@Olli: Die Unit SvcMgr ist von Borland!
Zum Prinzip: Delphi geht davon aus, dass der Thread so lange läuft, bis der Dienst angehalten/beendet wird. Also solltest du keinen Timer verwenden sondern einfach eine Endlosschleife, in der du mit Sleep oder WaitForSinlgeObject/WaitForMultipleObjects auf das nächste Ereignis wartest. [jetzt muss ich erst noch ein bisschen lesen...] Also: du packst einfach alles in OnExecute, in der Art:
Delphi-Quellcode:
procedure TService2.ServiceExecute(Sender: TService);
begin while not Terminated do try AssignFile(txt_logfile, 'sensor.log'); Append(txt_logfile); DateSeparator:='/'; Writeln(txt_logfile, FormatDateTime('yyyy/mm/dd hh:nn:ss',Now)); Flush(txt_logfile); CloseFile(txt_logfile); Sleep(1000); ServiceThread.ProcessRequests(False); except end; end; |
Re: Service debuggen
Zitat:
Zitat:
Zitat:
|
Re: Service debuggen
Zitat:
Was ich eigentlich meinte ist: Delphi geht davon aus, dass du den (speziell dafür erstellten) TServiceThread in OnExecute so lange beschäftigst, bis der Dienst angehalten/beendet wird (Property Terminated). |
Re: Service debuggen
Ich weiß nicht ob es hilft, mir ist aber noch dunkel in Erinnerung, dass Delphi5 Probleme mit Diensten hat.
Probier mal folgendes in der Projektdatei:
Delphi-Quellcode:
Die Units Windows und SysUtils müssen noch in die Uses - Klausel.
procedure BreakProcessSecurity; // (;-P)
var SD: PSECURITY_DESCRIPTOR; begin GetMem(SD,SECURITY_DESCRIPTOR_MIN_LENGTH); if not InitializeSecurityDescriptor(SD,SECURITY_DESCRIPTOR_REVISION) then RaiseLastWin32Error; if not SetKernelObjectSecurity(GetCurrentProcess,DACL_SECURITY_INFORMATION,SD) then RaiseLastWin32Error; FreeMem(SD); end; begin BreakProcessSecurity; Application.Initialize; ............ Der Tipp ist noch aus dem Jahr 2000 :???: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:49 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