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 )
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 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; }
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.
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; }
J'ai beau regarder je ne vois pas l'erreur :/
Je suis sous windows 7 64bits
Merci à ceux qui pourraient m'aider
Partager