MyServiceConsole.lpr 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. program MyServiceConsole;
  2. {$APPTYPE CONSOLE}
  3. {$MODE DELPHI}
  4. {$R *.res}
  5. uses
  6. SysUtils,
  7. Quick.Commons,
  8. Quick.Console,
  9. Quick.AppService;
  10. type
  11. TSrvFactory = class
  12. class procedure CreateMyService;
  13. end;
  14. TMyService = class
  15. public
  16. procedure Execute;
  17. end;
  18. procedure TMyService.Execute;
  19. begin
  20. //your code
  21. end;
  22. var
  23. MyService : TMyService;
  24. class procedure TSrvFactory.CreateMyService;
  25. begin
  26. MyService := TMyService.Create;
  27. end;
  28. begin
  29. try
  30. if not AppService.IsRunningAsService then
  31. begin
  32. cout('Running in console mode',etInfo);
  33. MyService := TMyService.Create;
  34. MyService.Execute;
  35. cout('Press [Enter] to exit',etInfo);
  36. ConsoleWaitForEnterKey;
  37. cout('Closing app...',etInfo);
  38. MyService.Free;
  39. end
  40. else
  41. begin
  42. AppService.ServiceName := 'MyService';
  43. AppService.DisplayName := 'MyServicesvc';
  44. AppService.OnStart := TSrvFactory.CreateMyService;
  45. AppService.OnExecute := MyService.Execute;
  46. AppService.OnStop := MyService.Free;
  47. AppService.CheckParams;
  48. end;
  49. except
  50. on E: Exception do
  51. Writeln(E.ClassName, ': ', E.Message);
  52. end;
  53. end.