|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Создание log файла в сервисе
Помогите не могу понять когда пишу программу в VCL все нормально работает, а когда переписываю в сервис перестает создаваться файл
Вот код сервиса Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs, ExtCtrls, ComCtrls, StdCtrls; type TLurking_software = class(TService) Timer1: TTimer; procedure ServiceStart(Sender: TService; var Started: Boolean); procedure Timer1Timer(Sender: TObject); private { Private declarations } public function GetServiceController: TServiceController; override; { Public declarations } end; procedure AddToLog(s:string); function GetFileSize(FileName: string): integer; var Service1: TLurking_software; f : boolean; implementation {$R *.DFM} procedure ServiceController(CtrlCode: DWord); stdcall; begin Service1.Controller(CtrlCode); end; function TLurking_software.GetServiceController: TServiceController; begin Result := ServiceController; end; procedure TLurking_software.ServiceStart(Sender: TService; var Started: Boolean); begin f:=true; end; procedure AddToLog(s:string); var fn:string; F:TextFile; begin Fn:='D:\'+'log.txt'; if (GetFileSize(FN)div 1024)>=2 then begin assignFile(f,fn); RenameFile('D:\'+'log.txt', 'D:\'+FormatDateTime('dd', Now)+ FormatDateTime('mm', Now) +FormatDateTime('yyyy', Now)+FormatDateTime('hh', Now)+FormatDateTime('nn', Now)+ FormatDateTime('ss', Now)); end; assignFile(f,fn); if FileExists(fn) then Append(f) else Rewrite(f); Writeln(f,s); Flush(f); Closefile(f); end; function GetFileSize(FileName: string): integer; var F: TMemoryStream; begin try F:=TMemoryStream.Create; F.LoadFromFile(FileName); Result:=F.Size; finally F.Free; end; end; procedure TLurking_software.Timer1Timer(Sender: TObject); begin if f=true then begin AddToLog('test'); end; end; end. |
#2
|
||||
|
||||
Для начала вдумчиво курить вот этот мануал
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#3
|
|||
|
|||
Цитата:
Это я знаю |