Bonjour,
Je suis débutant Delphi et je réalise ma première application de service windows.
J'ai pour but de créer un service windows qui devra périodiquement tester la valeur d'un champ d'une table suivant une liste de fichier. Le corps du programme fonctionne et à déjà été testé mais ce qui me pose problèmes est le 'service'.
Je ne voit pas comment demander a mon service d'executer une procédure tout les x secondes.
J'ai essayé de mettre mon code dans l'évenement OnTimer en espérant qu'il se comporte comme je le souhaite...![]()
pour mon code :
Si vous auriez des pistes quant à la façon de procéder, je suis preneur !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 unit U_SERVICE_MAJ_ETAT_CONVERTION_NSACFI; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs, DB, DBTables,Inifiles, ExtCtrls; type TSTest_MAJETAT = class(TService) T_NAPSSARF: TTable; DB_ACCESS_BL: TDatabase; Timer1: TTimer; procedure Timer1Timer(Sender: TObject); private { Private declarations } public function GetServiceController: TServiceController; override; { Public declarations } end; var STest_MAJETAT: TSTest_MAJETAT; implementation {$R *.DFM} {===============================================================================} {===============================================================================} {===============================================================================} procedure ServiceController(CtrlCode: DWord); stdcall; begin STest_MAJETAT.Controller(CtrlCode); end; {===============================================================================} {===============================================================================} {===============================================================================} function TSTest_MAJETAT.GetServiceController: TServiceController; begin Result := ServiceController; end; {===============================================================================} {PROCEDURE PRINCIPALE===========================================================} {===============================================================================} procedure TSTest_MAJETAT.Timer1Timer(Sender: TObject); begin {Le corp du code} end; end.
Et petite préscision qui peu être intéressante : Une fois fonctionnel, le service sera lancé deux a trois fois par jours. (L'intervalle en ms donné par le TTimer à l'air peu convainquant pour des durées aussi longues..)
Merci d'avances,
ZenZile
Partager