Ir al contenido


Foto

Algun ejemplo simple de un SERVICIO de WINDOWS


Mejor respuesta pcicom , 25 mayo 2022 - 09:45

Saludos a TODOS..    

Por una extraña razon que desconozco, tenia un problema en mi instalacion de mi DELPHI,   realice pruebas en otro equipo y el nuevo equipo si generaba mi servicio correctamente, a lo que tuve que reinstalar nuevamente en mi pc de desarrollo y se corrigio el problema de la creacion de servicios en delphi..

 

Favor de Hacer caso omiso al post anterior... 

Ir al mensaje completo


  • Por favor identifícate para responder
2 respuestas en este tema

#1 pcicom

pcicom

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 267 mensajes
  • LocationMéxico

Escrito 24 mayo 2022 - 05:00

Saludos

 

Alguien tendra algun ejemplo de un servicio en windows, tengo un problema el cual el servicio funciona pero al iniciarlo me manda el

error 1503 El servicio no respondió a la petición de inicio o control en el momento oportuno
 


delphi
  1. unit unit 2;
  2.  
  3.  
  4.  
  5. interface
  6.  
  7. uses
  8. Winapi.Windows, Winapi.Messages, System.SysUtils, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.SvcMgr, Vcl.Dialogs,
  9. Vcl.ExtCtrls, System.DateUtils,System.StrUtils;
  10.  
  11. type
  12. TService2 = class(TService)
  13. Timer1: TTimer;
  14. procedure ServiceExecute(Sender: TService);
  15. procedure ServiceStart(Sender: TService; var Started: Boolean);
  16. procedure ServiceStop(Sender: TService; var Stopped: Boolean);
  17. procedure ServicePause(Sender: TService; var Paused: Boolean);
  18. procedure Timer1Timer(Sender: TObject);
  19. procedure ServiceCreate(Sender: TObject);
  20. procedure ServiceDestroy(Sender: TObject);
  21. private
  22. { Private declarations }
  23.  
  24. public
  25. function GetServiceController: TServiceController; override;
  26. procedure WriteLog(cMsg:String);
  27. { Public declarations }
  28. end;
  29.  
  30. var
  31. Service2: TService2;
  32.  
  33. implementation
  34.  
  35. {$R *.dfm}
  36.  
  37.  
  38. procedure ServiceController(CtrlCode: DWord); stdcall;
  39. begin
  40. Service2.Controller(CtrlCode);
  41. end;
  42.  
  43. function TService2.GetServiceController: TServiceController;
  44. begin
  45. Result := ServiceController;
  46. end;
  47.  
  48.  
  49. procedure TService2.ServiceCreate(Sender: TObject);
  50. begin
  51. Writelog('Create');
  52. DoStart;
  53. end;
  54.  
  55. procedure TService2.ServiceDestroy(Sender: TObject);
  56. begin
  57. Writelog('Destroy');
  58. end;
  59.  
  60. procedure TService2.ServiceExecute(Sender: TService);
  61. var
  62. cnt : Integer;
  63. begin
  64. Try
  65. Writelog('ServiceExecute');
  66. cnt :=0;
  67. Timer1.enabled := true;
  68. while not self.Terminated do
  69. begin
  70. inc(CNT);
  71. // WriteLog('Ejecutandose' + InttoStr(cnt));
  72. ServiceThread.ProcessRequests(true);
  73. // Sleep(10000);
  74. end;
  75. Timer1.Enabled := False;
  76.  
  77. except
  78. on e:Exception do
  79. begin
  80. Writelog('ServiceExecute'+ e.Message);
  81. Timer1.Enabled := False;
  82. end;
  83. end;
  84.  
  85. end;
  86.  
  87. procedure TService2.ServicePause(Sender: TService; var Paused: Boolean);
  88. begin
  89. Paused := true;
  90. Writelog('Pausado');
  91. end;
  92.  
  93. procedure TService2.ServiceStart(Sender: TService; var Started: Boolean);
  94. begin
  95. Started := true;
  96. Writelog('Iniciado');
  97. end;
  98.  
  99. procedure TService2.ServiceStop(Sender: TService; var Stopped: Boolean);
  100. begin
  101. Stopped := true;
  102. Writelog('Stopped');
  103. end;
  104.  
  105. procedure TService2.Timer1Timer(Sender: TObject);
  106. begin
  107. Writelog('Timer');
  108. end;
  109.  
  110. procedure TService2.WriteLog(cMsg:String);
  111. var
  112. myFile : TextFile;
  113. cFile : string;
  114.  
  115. begin
  116.  
  117. Try
  118. cFile := 'c:\temp\logTest.txt';
  119.  
  120. AssignFile(myFile, cFile);
  121. if fileExists(cFile) then
  122. Append(myfile)
  123. else
  124. ReWrite(myFile);
  125.  
  126. WriteLn(myFile, FormatDateTime('yyyy-mmm-dd hh:mm:ss',now)+ ' '+ cMsg);
  127.  
  128. CloseFile(myFile);
  129. except
  130.  
  131. end;
  132. end;
  133.  
  134. end.
  135.  

Alguien que tenga algo simple y que al iniciarlo se ponga como "INICIADO"

Agradeciendo cualquier aporte, quedo a su mas apreciable atencion..



 


Editado por pcicom, 24 mayo 2022 - 05:03 .

  • 0

#2 pcicom

pcicom

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 267 mensajes
  • LocationMéxico

Escrito 25 mayo 2022 - 09:45   Mejor respuesta

Saludos a TODOS..    

Por una extraña razon que desconozco, tenia un problema en mi instalacion de mi DELPHI,   realice pruebas en otro equipo y el nuevo equipo si generaba mi servicio correctamente, a lo que tuve que reinstalar nuevamente en mi pc de desarrollo y se corrigio el problema de la creacion de servicios en delphi..

 

Favor de Hacer caso omiso al post anterior... 


  • 1

#3 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.460 mensajes
  • LocationMéxico

Escrito 25 mayo 2022 - 11:33

Que bien amigo pcicom, un gusto leerte. Estaba tratando de replicar el servicio, pero que bueno que se ha resuelto. (y)

 

Saludos


  • 0




IP.Board spam blocked by CleanTalk.