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
| //------------------------------------------------------------------------------
procedure TAutomateLogistiqueService.ServiceAfterInstall(Sender: TService);
const
ALHRZ_DESCRIPTION = 'Service gérant de façon autonome les interactions'
+ ' entre les modules du WMS xxx (la Gestion des Vagues, le Module Logistique, le Module dAdministration de lAutomate Logistique, ...)'
+ ' et le Sorter Control System (SCS) de SDI. Larrêt de ce service entraîne la perte de la connectivité'
+ ' avec les trieurs automatisés intégrés à la chaîne logistique de xxx xxx.';
REG_KEY_EVENT_LOG = 'SYSTEM\CurrentControlSet\services\eventlog';
REG_KEY_THOM_EVENT_LOG = 'xxx xxx Event Log';
var
Svc: SC_HANDLE;
SvcMgr: SC_HANDLE;
Info: SERVICE_DESCRIPTION;
Reg: TRegistry;
begin
// Ajout de la description dans services.msc
SvcMgr := OpenSCManager(nil, nil, STANDARD_RIGHTS_REQUIRED);
try
Svc := OpenService(SvcMgr, PChar(Self.Name), SERVICE_CHANGE_CONFIG);
try
Info.lpDescription := PChar(ALHRZ_DESCRIPTION);
Winapi.WinSvc.ChangeServiceConfig2(Svc, SERVICE_CONFIG_DESCRIPTION, @Info);
finally
CloseServiceHandle(Svc);
end;
finally
CloseServiceHandle(SvcMgr);
end;
// Ajout du journal personnalisé dans mmc.exe dans sa variante "Afficher les journaux d'évènements"
Reg := TRegistry.Create();
try
Reg.RootKey := HKEY_LOCAL_MACHINE;
if Reg.OpenKey(REG_KEY_EVENT_LOG, False) then
begin
if Reg.OpenKey(REG_KEY_THOM_EVENT_LOG, True) then
begin
// Ajout de l'application courante comme élément concerné par ce journal personnalisé spécifique à xxx xxx
// Je n'ai pas réussi à changer le fichier evt
// Il sera donc dans "%SystemRoot%\System32\Winevt\Logs\" ce qui donne "C:\Windows\System32\winevt\Logs\xxx xxx Event Log.evtx"
if not Reg.KeyExists(Self.Name) then
Reg.CreateKey(Self.Name);
end;
end;
finally
Reg.Free();
end;
end; |