IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

Problème avec la base de registre


Sujet :

MFC

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Problème avec la base de registre
    slt
    Dans le cadre d'un programme je dois aller des valeurs dans la base de registre qui sont dans les colonnes "Noms" et "Données".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CRegKey key;
    LONG lResult = 0;
    J'arrive à l'ouvrir avec la méthode suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    lResult = key.Open( HKEY_LOCAL_MACHINE, _T("HARDWARE\\DEVICEMAP\\SERIALCOMM"));
    if( lResult != ERROR_SUCCESS )
    return FALSE;
    J'arrive à la fermer avec la méthode suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    lResult = key.Close();
    if( lResult != ERROR_SUCCESS )
    return FALSE;
    Mais le problème est la lecture des informations.
    Si quelqu'un pouvait m'aider.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    303
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 303
    Points : 155
    Points
    155
    Par défaut
    Salut,
    Voici le code que j'utilise

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    /////////////////////////////////////////////////////////////////////////////
    // My access to the registry 
    // Write a string 
    bool CApp::SetRegString(CString path,CString field,CString Val)
    {
    	HKEY subKey;
     
    	int err;
    	if(err=::RegOpenKeyEx(HKEY_CURRENT_USER,(LPCTSTR)path,0,KEY_WRITE,&subKey)) 
    	{
    		RegistryAccessError(err);
    		return false;
    	}
    	if(err=::RegSetValueEx(subKey,field,0,REG_SZ,(const unsigned char *)(LPCTSTR)Val,(Val.GetLength()+1)*sizeof(TCHAR)))
    	{
    		RegistryAccessError(err);
    		return false;
    	}
    	if(err=::RegCloseKey(subKey))
    	{
    		RegistryAccessError(err);
    		return false;
    	}
    	return true;
    }
     
    // Write an Integer
    bool CApp::SetRegInt(CString path,CString field,int Val)
    {
    	HKEY subKey;
     
    	int err;
    	if(err=::RegOpenKeyEx(HKEY_CURRENT_USER,(LPCTSTR)path,0,KEY_WRITE,&subKey)) 
    	{
    		RegistryAccessError(err);
    		return false;
    	}
    	if(err=::RegSetValueEx(subKey,field,0,REG_DWORD,(const unsigned char *)&Val,sizeof(REG_DWORD)))
    	{
    		RegistryAccessError(err);
    		return false;
    	}
    	if(err=::RegCloseKey(subKey))
    	{
    		RegistryAccessError(err);
    		return false;
    	}
    	return true;
    }
     
    // Read a string 
    CString CApp::GetRegString(CString path,CString field,CString defVal)
    {
    	HKEY subKey;
    	TCHAR data[256];
    	DWORD	Size=sizeof(data);
     
    	memset(data,0,Size/sizeof(TCHAR));
    	int err;
    	if(err=::RegOpenKeyEx(HKEY_CURRENT_USER,(LPCTSTR)path,0,KEY_READ,&subKey)) 
    	{
    		RegistryAccessError(err);
    		return defVal;
    	}
    	if(err=::RegQueryValueEx(subKey,field,0,NULL,(unsigned char *)data,&Size))
    	{
    		RegistryAccessError(err);
    		return defVal;
    	}
    	if(err=::RegCloseKey(subKey))
    	{
    		RegistryAccessError(err);
    		return defVal;
    	}
    	return data;
    }
     
    // Read an Integer
    int		CApp::GetRegInt(CString path,CString field,int defVal)
    {
    	HKEY subKey;
    	TCHAR	data[256];
    	DWORD	Size=sizeof(data);
     
    	memset(data,0,Size);
    	int err;
    	if(err=::RegOpenKeyEx(HKEY_CURRENT_USER,(LPCTSTR)path,0,KEY_READ,&subKey)) 
    	{
    		RegistryAccessError(err);
    		return (defVal);
    	}
    	if(err=::RegQueryValueEx(subKey,field,0,NULL,(unsigned char *)data,&Size))
    	{
    		RegistryAccessError(err);
    		return (defVal);
    	}
    	if(err=::RegCloseKey(subKey))
    	{
    		RegistryAccessError(err);
    		return (defVal);
    	}
    	return (*(int*)data);
    }
    void	CApp::RegistryAccessError(int err)
    {
     
    	// To Display a error message
    	LPVOID lpMsgBuf;
    	FormatMessage( 
    		FORMAT_MESSAGE_ALLOCATE_BUFFER | 
    		FORMAT_MESSAGE_FROM_SYSTEM | 
    		FORMAT_MESSAGE_IGNORE_INSERTS,
    		NULL,
    		err,
    		MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
    		(LPTSTR) &lpMsgBuf,
    		0,
    		NULL 
    	);
    	// Process any inserts in lpMsgBuf.
    	// ...
    	// Display the string.
    	MessageBox( NULL, (LPCTSTR)lpMsgBuf, _T("Error"), MB_OK | MB_ICONINFORMATION );
    	// Free the buffer.
    	LocalFree( lpMsgBuf );
    }

Discussions similaires

  1. Problème avec la base de registre et vista
    Par fredppp dans le forum VC++ .NET
    Réponses: 2
    Dernier message: 12/06/2007, 08h33
  2. [VB]Problème avec les bases de données
    Par boudincweole10 dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 22/04/2006, 20h24
  3. problème avec ma base de donnée
    Par polace dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 22/10/2005, 22h26
  4. problème avec ma base de données
    Par pmboutteau dans le forum ASP
    Réponses: 6
    Dernier message: 25/02/2005, 12h59
  5. problème de lecture base de registre
    Par pafounet3 dans le forum MFC
    Réponses: 10
    Dernier message: 31/12/2003, 14h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo