[C++] Ecrire dans la base de registre

Ecrire dans la base de registre [C++] - Programmation

Marsh Posté le 15-07-2001 à 09:49:08    

Comment faire l'équivalent de ce .reg lorsque l'on l'éxécute en C++ ?
 
***
REGEDIT4
 
[HKEY_LOCAL_MACHINE\SOFTWARE\MonProg]
"Setup"="Setup.exe"
***
 
Je n'ai pas réussi à utiliser la fonction RegSetValueEx();

Reply

Marsh Posté le 15-07-2001 à 09:49:08   

Reply

Marsh Posté le 15-07-2001 à 11:00:37    

en C++Builder y a un composant TRegistry facile à utiliser mais je suppose que tu n'utilises pas C++Builder...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 15-07-2001 à 11:14:58    

Avant d'utiliser le RegSetValue(), il faut d'abord créer une clé avec RegCreateKey(), et ensuite tu passes le Handle de ta clé comme paramètre à RegSetValue.
Voilà un exemple :
 
HKEY hKey;
 
 RegCreateKeyEx(
 HKEY_CURRENT_USER,     // handle to an open key
 "Software\\MonProg",    // address of subkey name
 0,     // reserved
 NULL,  // address of class string
 REG_OPTION_NON_VOLATILE,// special options flag
 KEY_ALL_ACCESS,     // desired security access
 NULL,              // address of key security structure
 &hKey,            // address of buffer for opened handle
 NULL);  // address of disposition value buffer
 
 RegSetValue(hKey, "Setup", REG_SZ, "Setup.exe", 255);
Je pense que ça devrait t'aider un minimum ;)

Reply

Marsh Posté le 15-07-2001 à 20:20:59    

ok je vais tester ça
merci

Reply

Marsh Posté le 15-07-2001 à 20:49:35    

Ca marche presque !
Voila ce que je souhaite :
 
   Nom  Données
...
Software
 MonProg  "Setup"  "Setup.exe"
 
et non ce que le code me fait :
...
Software
 MonProg
  Setup (Défaut) "Setup.exe"
 
Merci

Reply

Marsh Posté le 16-07-2001 à 11:03:06    

up! :)

Reply

Marsh Posté le 16-07-2001 à 13:33:32    

hello ..
 
moi je cherche à lire une valeur dans la base de registre ...
 
comment faut il s'y prendre ?
 
reponse pour l'ecriture :
 
 // Creation de la clé
  hKey = 0;
  hr = RegCreateKey(HKEY_LOCAL_MACHINE,
       _T("SOFTWARE\\DivXManage" ),  
       &hKey);
 
  if (hr == ERROR_SUCCESS)
  {
   RegSetValueEx(hKey,  
    lpszName,  
    0,  
    REG_SZ,  
    (const BYTE*)DataBasePath,  
    strlen(DataBasePath));
  }

Reply

Marsh Posté le 16-07-2001 à 15:59:20    

En fait je ne souhaite pas créer une nouvelle clé, mais écrire dans une clé existante une nouvelle valeur chaîne et affecter des données à cette valeur.
(comme sur mon schéma ci-dessus)

Reply

Marsh Posté le 16-07-2001 à 20:29:50    

up!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed