Bonjour à tous,

Cette clé étant un string, j'arrive bien à la lire mais pas à la modifier, j'obtiens toujours uen erreur d'ECHEC à L'OBTENTION DES DOONEES' pour ces 2 cles.

Voici mon code :

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

procedure GetMsgOpenWindows(var WTitre : string; var WMessage : string);

var
  Reg : TRegistry;

begin
  Screen.Cursor := crHourglass;
  Reg := TRegistry.Create;
  with TRegistry(Reg) do
  begin
    Try
      ROOTKEY := HKEY_LOCAL_MACHINE;
      if OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System', false)
      then begin
             WTitre   := PChar(ReadString('LegalNoticeCaption'));
             WMessage := PChar(ReadString('LegalNoticeText'));           
            end
    Finally
      CloseKey;
      Free;
      Screen.Cursor := crDefault;
    end;
   end;
end;
Pour lire c'est OK mais pour enregistrer voici mon code :

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

procedure SetMsgOpenWindows(WTitre : string; WMessage : string);
{Pour enregistrer un message d'accueil au démarrage de Windows. Pour valider un nouveau message,
 renseigner les 2 champs, sinon les vider pour envler tout message}

var
  Reg : TRegistry;

begin
  Screen.Cursor := crHourglass;
  Reg := TRegistry.Create;
  with TRegistry(Reg) do
  begin
    Try
      ROOTKEY := HKEY_LOCAL_MACHINE;
      if OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System', true)
      then begin
             WriteString('LegalNoticeCaption', WTitre);            
              WriteString('LegalNoticeText', WMessage);     
             end
    Finally
      CloseKey;
      Free;
      Screen.Cursor := crDefault;
    end;
   end;
end;
Impossible, j'obtient l'erreur mêm si je met un PCharWTitre);

Je ne comprend pas pourquoi, si je peux le lire pourquoi ne pas l'enregistrer ? Avez-vous une diée.

Cordialemement