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

Visual C++ Discussion :

Creation cle de registre


Sujet :

Visual C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Creation cle de registre
    Hello !

    Je suis en train de me remettre au C++, j'ai donc décidé de recoder un peu de tout et récemment j'ai voulu faire un soft qui se lançait au démarrage de mon windows.

    Or quand je prends l'exemple de developpez.net tout fonctionne ( normal )
    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
    int main()
    {
        // Ce programme écrit dans HKEY_CURRENT_USER, Software\Developpez.              
     
        HKEY Developpez;                            // La clé que nous allons ouvrir    
        TCHAR s[] = TEXT("http://www.developpez.com/"); // La valeur que nous allons écrire 
     
        // On crée un handle vers la clé Developpez.                                    
        // Si la clé n'exsite pas encore, elle sera créée.                              
     
        RegCreateKeyEx( HKEY_CURRENT_USER, TEXT("Software\\Developpez"), 0, NULL, 0, KEY_ALL_ACCESS, NULL,
                        &Developpez, NULL );
     
        // On écrit le contenu de s dans une valeur chaîne (REG_SZ) nommée index.       
        // On n'écrit pas le caractère '\0'.                                            
     
        RegSetValueEx(Developpez, TEXT("index"), 0, REG_SZ, (LPBYTE)s, (DWORD)sizeof(s));
     
        // On ferme le handle.                                                          
     
        RegCloseKey(Developpez);
     
        return 0;
    }
    Mais j'avais fais mon code avant et donc j'étais parti sur quelque chose de un peu différent mais avec les mêmes fonctions

    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
    int declarationRegistryRun(LPCTSTR name, const char *path)
    {
     
    	int etat;
    	HKEY hkey;
    	TCHAR s[] = TEXT("C:\\hello.exe");
     
     
    	RegCreateKeyEx(HKEY_LOCAL_MACHINE, (LPCWSTR)path, 0, NULL, 0, KEY_ALL_ACCESS, NULL,&hkey, NULL );
     
    	if( RegOpenKeyEx( HKEY_LOCAL_MACHINE,(LPCWSTR)path,0,KEY_ALL_ACCESS,&hkey ) == ERROR_SUCCESS )
    	{
     
    		printf("Ouverture reussie !");
    		etat = 1;
     
    		if (RegSetValueEx(hkey,name,0,REG_SZ,(LPBYTE)s,(DWORD)sizeof(s)) == ERROR_SUCCESS )
    		{
    			printf("c'est bon pour la valeur");
    			etat = -1;
    		}
     
    	RegCloseKey( hkey );
    	}
    	else 
    	{
    		printf("null");
    		etat = 2;
    	}
    	return etat;
    }
     
    int main()
    {
    	LPCTSTR name = TEXT("hello");
    	const char *path = "Software\\Microsoft\\Windows\\CurrentVersion\\Run";
     
    	declarationRegistryRun(name, path);
     
    	Sleep(2000);
    	return 0;
    }
    Le problème c'est que ma fonction retourne toujours l'affichage "null" et en débuggant j'ai trouver que c'est le hkey qui semble poser problème.

    J'ai beau regarder je ne vois pas l'erreur :/

    Je suis sous windows 7 64bits

    Merci à ceux qui pourraient m'aider

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 175
    Points : 12 302
    Points
    12 302
    Par défaut
    Si cela compile, c'est que vous êtes dans un projet UNICODE.

    Mais votre cast
    C'est n'importe quoi.

    Utiliser des TCHAR partout SVP.

    Vous n'aurez plus à caster et vous n'aurez peut-être plus de problèmes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    LPCTSTR name = TEXT("hello");
    	LPCTSTR path = TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Run");
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int declarationRegistryRun(LPCTSTR name, LPCTSTR path)
    {
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RegCreateKeyEx(HKEY_LOCAL_MACHINE, path, 0, NULL, 0, KEY_ALL_ACCESS, NULL,&hkey, NULL );
    ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. autorisations sur une cle de registre.
    Par sebos21 dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 02/04/2009, 15h18
  2. script cle de registre
    Par battit64 dans le forum VBScript
    Réponses: 1
    Dernier message: 02/12/2008, 10h52
  3. Ajout d'un cle de registre dans un VBS
    Par lolo1790 dans le forum VBScript
    Réponses: 3
    Dernier message: 12/06/2007, 09h44
  4. Création clé usb bootable : ouvir le fichier .img
    Par repié dans le forum Administration système
    Réponses: 2
    Dernier message: 07/12/2005, 15h57
  5. [WIN32] clés de registre
    Par Cyspak dans le forum Modules
    Réponses: 3
    Dernier message: 11/09/2003, 12h59

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