Base de registre [C++] - Programmation
Marsh Posté le 15-10-2001 à 15:10:49
plus simple : 
 
#include <atlbase.h> 
 
 
CRegKey key 
status = key.Create(HKEY_CURRENT_USER,"Software\\blah" ); 
 
char  path[512]; 
DWORD sizePath=512; 
  
status = key.QueryValue(path,"macle",&sizePath); 
if (status == ERROR_SUCCESS) 
//cle trouvee 
 
 
"macle" etant bien entendu le nom de la cle dont tu veux l info 
[edtdd]--Message édité par chrisbk--[/edtdd]
Marsh Posté le 15-10-2001 à 15:25:57
euh, ouaip 
c'est pas grave si j'utilise pas les deux grosses fonctions de la mort qui tue ? 
Marsh Posté le 15-10-2001 à 15:26:53
les RegOpenKeyEx  et consort ? 
 
nope, a mon avis la CRegKey le fait gentillement pour toi 
sympa non ?  
 
Marsh Posté le 15-10-2001 à 15:30:50
ok ben je vais tester alors. 
Mais ca me fait chier de caler la moitie de ce qu'il faut faire, les fonctions, etc... 
Ils pourraient foutre des exemples dans le msdn 
Marsh Posté le 15-10-2001 à 16:05:59
le path c'est bien Software//.... paske la j'ai une belle erreur d'execution
Marsh Posté le 15-10-2001 à 23:02:03
plantage ? 
 
ca m'epate, g fait cut & paste de mon code, qui marche 
 
mettons que dans ton registre tu aie le rep HKEY_CURRENT_USER\sofware\godbout et dedans la clé pouet contenant la chaine "brol" 
 
CRegKey key  
status = key.Create(HKEY_CURRENT_USER,"Software\\godbout" );  
 
char  path[512];  
DWORD sizePath=512;  
  
status = key.QueryValue(path,"pouet",&sizePath);  
 
normalement, si je ne bois pas, path doit contenir "brol" 
Marsh Posté le 16-10-2001 à 08:52:40
ok ben je m'etais surement plante avec le path. 
Je vais reessayer, mais j'aimerais comprendre pourquoi j'arrive pas a utiliser les fonctions RegOpen..., etc... 
 
Suis je vraiment nul ??  
 
Marsh Posté le 16-10-2001 à 08:59:30
non  
 
 
les fonctions du registres ont souvent 250param, pas tjs faci;e de voir ce qu'ils veulent  
 
Marsh Posté le 16-10-2001 à 09:15:54
| Godbout a écrit a écrit  : (encore 1 fois  ) | 
 
 
la facture devrait bientot arriver  
 
Marsh Posté le 16-10-2001 à 09:21:30
Au fait tu fais koi comme boulot ? 
Parce que j'ai remarque que tu connaissais un sacre paquet de truc, comme deux ou trois autres sur ce forum (Guru, el_gringo, BENB) 
[edtdd]--Message édité par Godbout--[/edtdd]
Marsh Posté le 16-10-2001 à 09:37:26
je bosse pas, enfin pas vraiment .  
Pour le moment je suis stagiaire, jusqu'a decembre . apres ca je retourne a la fac pour 6 mois et apres soit je bosse soit je refait un an, je sais pas encore trop 
Marsh Posté le 16-10-2001 à 09:42:43
t'es en quelle annee de fac ? 
fac de koi ? 
ou t'as appris tout ca ? 
quel age ? 
oui ? 
non ? 
Marsh Posté le 16-10-2001 à 09:52:40
IUP GMI 3eme annee, 21 ans (on dirait Maurice avec ses " qui va la je t prie  )
) 
 
j ai appris a cote en fait, depuis que g commencer l'IUT. je code des trucs pour moi, en dose assez...massives 
 
moteur 3D principalement, et tout le tatoin qui va avec (plug in max, editeur et autre joyeusete du genre....) 
Marsh Posté le 16-10-2001 à 09:54:11
| chrisbk a écrit a écrit  : IUP GMI 3eme annee, 21 ans (on dirait Maurice avec ses " qui va la je t prie  ) j ai appris a cote en fait, depuis que g commencer l'IUT. je code des trucs pour moi, en dose assez...massives moteur 3D principalement, et tout le tatoin qui va avec (plug in max, editeur et autre joyeusete du genre....) | 
 
 
ok... (I'm calmed  )
) 
[edtdd]--Message édité par Godbout--[/edtdd]
Marsh Posté le 16-10-2001 à 10:02:47
boaf, c juste une question de tps....et g passe pas mal de mon tps a coder ces derniers annees. 
 
je te dirais que l'IUT m'a pas bpc appris (j'apprenais 10x plus vite avec "le C en 21 jours" qu'en suivant les cours de l'IUT) et l'iup pas trop non plus (du moins pour le C++) 
 
 
tu bosses depuis lgtps ? quel etudes ? 
Marsh Posté le 16-10-2001 à 10:04:21
Ca fera bientot 2 mois. 
J'ai fait un DUT info, c'est pareil ca m'a appris que les bases, en gros du bon vieux C dos  
 
Je m'etais mis un peu a la prog windows, mais beaucoup moins pousse que ce que je fais (ou que j'ai l'impression de faire) en ce moment. 
[edtdd]--Message édité par Godbout--[/edtdd]
Marsh Posté le 16-10-2001 à 10:07:49
IUP = Institut Universitaire ___    
 
GMI = Genie des Methodes Informatiques  
 
 
reelement je ne sais pas, dites moi... 
Marsh Posté le 16-10-2001 à 10:11:27
IUP = ..... professionalise, ou un truc du gout (blah !  )
)  
GMI = genie mathematique et informatique 
Marsh Posté le 16-10-2001 à 10:13:52
Merci  
 
topic interessant... 
j'ai appris sur la base de registre + IUP et GMI... 
Marsh Posté le 16-10-2001 à 10:22:57
Juste pour revenir au topic j'ai reussi a utiliser les deux grosses fonctions. 
J'ai essaye meme si ta technique marchait chrisbk, non pas parce que je voulais forcement du bourrin mais plutot pour comprendre un peu les types, les arguments,etc.. 
 
Voila voila...  
 
Marsh Posté le 16-10-2001 à 10:27:01
Par contre je trouve ca terrible que les arguments demandes soit du type LPDWORD ou LPBYTE et que si tu les definis comme ca ca marche pas. 
Oblige de les definir en tant que unsigned char et unsigned long. 
Forcement quand t'es pas au courant c'est chaud (ou alors j'me demmerde encore comme une bille  )
) 
Marsh Posté le 16-10-2001 à 10:38:43
LP ca veut dire Long Pointer me semble-t-il... 
donc c'est normal qu'il faille declarer une variable puis en passer l'adresse...  
par contre une * serait plus parlante (a mon avis) 
Marsh Posté le 16-10-2001 à 10:46:40
Ouais mais meme en mettant une * ou n'importe quoi il prend pas. 
C'est pour ca que je m'obstinais a vouloir utiliser ces fonctions, histoire de comprendre. 
 
LONG RegQueryValueEx( 
  HKEY hKey,           // handle to key to query 
  LPTSTR lpValueName,  // address of name of value to query 
  LPDWORD lpReserved,  // reserved 
  LPDWORD lpType,      // address of buffer for value type 
  LPBYTE lpData,       // address of data buffer 
  LPDWORD lpcbData     // address of data buffer size 
); 
  
 
Pour lpData 
 
Si tu mets 
LPBYTE path[512]; 
LPBYTE *path[512]; 
LPBYTE &path[512]; 
... 
Enfin bref rien ne passe. 
Il faut mettre unsigned char path[512] 
Marsh Posté le 16-10-2001 à 10:49:47
ouais attends, LPBYTE = unsigned char *  
 
bref, quand tu fais 
LPBYTE path[512];  
 
c egal a : unsigned char * path[512] 
ce qui n'est pas bon 
 
faut faire : 
 
BYTE path[512]; 
Marsh Posté le 16-10-2001 à 11:05:20
et plutot que de mettre LPBYTE, je trouve qu'ils aurraient du mettre BYTE*...  
c'est tout... 
[edtdd]--Message édité par BENB--[/edtdd]
Marsh Posté le 16-10-2001 à 11:05:53
ok,  
ca m'aidera surement avec les prochaines fonctions, ca m'evitera de batailler pendant des heures. 
Marsh Posté le 15-10-2001 à 15:04:08
Il faudrait que je recupere des valeurs dans la base de registre. 
 
J'utilise la fonction RegOpenKeyEx et RegQueryValueEx, mais impossible de les faire fonctionner
Quelqu'un a un exemple ?