Registre : binary

alphaone Messages postés 134 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 14 novembre 2009 - 8 janv. 2005 à 17:33
meech Messages postés 209 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 14 août 2007 - 10 janv. 2005 à 11:02
j'aimerai voir comment on envoie du texte en binary dans le registre. donnez un exemple svp

2 réponses

meech Messages postés 209 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 14 août 2007
10 janv. 2005 à 10:22
Salut,

La fonction à utiliser est la suivante (extrait de MSDN ) :

LONG RegSetValueEx(
HKEY [ hKey]
,
LPCTSTR [ lpValueName]
,
DWORD [ Reserved]
,
DWORD [ dwType]
,
const BYTE* [ lpData]
,
DWORD [ cbData]

);

L'argument dwType doit prendre la valeur REG_BINARY (cf.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/registry_value_types.asp)

Dans lpData, tu balances un pointeur sur ce qui doit être stocké dans la base de registres.

Ciao.
0
meech Messages postés 209 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 14 août 2007
10 janv. 2005 à 11:02
(suite) Un petit exemple au passage :

#include <windows.h>


int main(int argc, char** argv)
{
HKEY hKey;
DWORD dwDisp = 0;
LPDWORD lpdwDisp = &dwDisp;
BYTE *b;
HANDLE heap;
char a[20];
RegCreateKeyEx(HKEY_CURRENT_USER, "CLEF", 0L, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, lpdwDisp);
heap=HeapCreate(0,0,0);
b=(BYTE*)HeapAlloc(heap,0,30);
strcpy((char*)b, "Valeur...");
RegSetValueEx(hKey,"Attributes",0,REG_BINARY,b,strlen(b));
HeapFree(heap,0,b);
HeapDestroy(heap);
RegCloseKey(hKey);
return(0);
}

Je n'ai pas eu le temps d'ajouter des contrôles (vérifier si la clef a bien été créée, par exemple), mais tu t'en débrouilleras bien.
En espérant t'avoir un peu aidé.
0
Rejoignez-nous