Bonjour,
Je viens de réaliser une application avec Delphi Rio 10.3.3 qui est installée sur un ordinateur Windows 10 – 2004.
Dans le programme, j’ai inclus la possibilité de créer une clé, dans la base registre, pour permettre de lancer le logiciel lors du démarrage de l’ordinateur. Pour ce faire, le code qui permet cette opération est le suivant :
À ce niveau, il n'y a aucun souci, le lancement de la procédure insère bien la clé dans la base registre et au démarrage de l’ordinateur, le logiciel est bien mis en œuvre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 with TRegistry.Create do begin RootKey := HKEY_CURRENT_USER; // A l'ouverture d'une session d'un utilisateur if OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run', False) then begin WriteString('MCI_Backup', FRepertProg + 'Backup.exe'); ShowMessage('L''application "Backup" sera lancée automatiquement au démarrage de l''ordinateur'); end; CloseKey; Free; end;
Où la chose se complique, c’est lorsque l’opérateur veut supprimer la clé de démarrage présente dans la base registre.
Pour la suppression de la clé, le code est :
Cette procédure ne supprime pas la clé présente dans la base registre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 with TRegistry.Create do begin RootKey := HKEY_CURRENT_USER; if OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', False) then begin if DeleteKey('MCI_Backup') then begin ShowMessage('L''application "Backup" ne sera plus lancée au démarrage de l''ordinateur'); end; CloseKey; Free; end;
Malgré mes nombreuses recherches et essais, rien n’y fait, elle est toujours présente.
J’ai tenté une élévation des privilèges avec un fichier « MCI_Backup.exe.Manifest », mais le résultat est identique.
Le détail de ce fichier est présenté ci-dessous.
Ne maîtrisant pas complètement la technique de ce type de fichier, il peut comporter une erreur.
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 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/> </dependentAssembly> </dependency> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> </requestedPrivileges> </security> </trustInfo> </assembly>
Si une compétence pouvait m’expliquer les raisons de mon échec, pour supprimer la clé de la base registre, je le remercie d’avance.
A votre disposition pour vous fournir toutes les explications complémentaires nécessaires.
Partager