Bonjour à toutes et à tous.

Depuis les dernières mises à jour de Windows 10, la base de registre a subit des restrictions.

En effet pour écrire une clé afin de permettre à une petite horloge de s'afficher au démarage de Windows 10 il a fallut modifier le code et lancer l'application en mode administrateur, ce mode m'ennuie car une fenêtre s'affiche.

Mais lorsque cette clé est créée, avec une ancienne procédure pour la déletée cela ne fonctionne plus.

Par contre avec un fichier batch sans être en administrateur cela fonctionne.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
function Tform1.GetDeleteValue(SelectRootKey: HKEY; SelectKey:string; Key: string): Boolean;
begin
  with TRegistry.Create do
    begin
      try
        RootKey := SelectRootKey;
        OpenKey(SelectKey, False);
        Result := DeleteValue(Key);
      finally
       Free;
      end;
    end;
end;
Usage :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
 GetDeleteValue(HKEY_LOCAL_MACHINE, 'Software\Microsoft\Windows\CurrentVersion\Run', 'CinClockVocal'); //Ne fonctionne plus
Pour créer la clé maintenant:

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
 
const
 KEY_WOW64_64KEY = $0100;
var
  Reg: TRegistry;
  Key: string;
begin
Reg := TRegistry.Create;
try
  Reg.Access := KEY_WOW64_64KEY or KEY_WRITE;
 
  Reg.RootKey := HKEY_LOCAL_MACHINE;
  if Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', True) then
  begin
    Reg.WriteString('CinClockVocal',Paramstr(0){Application.ExeName});
    Reg.CloseKey;
  end;
finally
  Reg.Free;
end;
end;
Si quelqu'un a une idée pour effacer, merci d'avance.

! je ne veus pas utiliser la clé HKEY_CURRENT_USER;

@+,

cincap