Accueil > Forum > > > > Problème gestion base de regsitre en C++ sous vista 64
Problème gestion base de regsitre en C++ sous vista 64
mardi 1 décembre 2009 à 14:48:02 |
Problème gestion base de regsitre en C++ sous vista 64

gegematic
|
Bonjour,
j'utilise une librairie pour gérer la base de registre en c, dont l'auteur est :
Code C/C++ :
// Support for the Windows Registry
// Version 5.10 (1st October)
// License - Free for any purpose, just do not remove the copyright
// Copyright (C) 1996-2006 - Jonathan Wilkes
Cette librairie a toujours fonctionné, avec windows Xp, mais sous Vista 64, elle n'arrive pas à a accéder à la clé
HKEY_LOCAL_MACHINE\SOFTWARE
par contre, elle accède sans pb à la clé
HKEY_LOCAL_MACHINE\HARDWARE
J'ai constaté, par regedit, que les autorisations sont différentes pour ces 2 clés.
est-ce que c'est l'explication ?
comment y remédier ?
Merci
Gérald
Code C/C++ : RegKey NewKey;
//RegKey::OpenKey(LPCTSTR pszKeyName, bool bCreateIfNoExist /* = false */, HKEY hBaseKey /* = HKEY_CURRENT_USER */, LPCTSTR pszMachineName /* = NULL */)
if (! NewKey.OpenKey("SOFTWARE", false, HKEY_LOCAL_MACHINE ))
cout << "clée SOFTWARE trouvée " << endl << endl;
else
cout << "clée SOFTWARE non trouvée " << endl << endl;
//end try with regkey
|
|
mardi 1 décembre 2009 à 19:30:41 |
Re : Problème gestion base de regsitre en C++ sous vista 64

BruNews
|
Comme toute surcouche c'est nuisible car ça masque ce qu'il faut faire.
Va voir les params de RegOpenKeyEx sur MSDN et tu comprendras vite qu'i manque l'essentiel dans ta lib prémachée.
HKLM exclusivement en lecture depuis simple prog.
Regarde aussi le flag KEY_WOW64_64KEY.
ciao...
BruNews, MVP VC++
|
|
mercredi 2 décembre 2009 à 08:32:56 |
Re : Problème gestion base de regsitre en C++ sous vista 64

fregolo52
|
Par défaut, sur un OS x64, si on fait un RegOpen de HKEY_LOCAL_MACHINE\SOFTWARE\MySoft :
- un process 64bit accède à HKEY_LOCAL_MACHINE\SOFTWARE\MySoft
- un process 32bit accède en réalité à HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\MySoft
Pour forcer à lire dans la partie 32 ou 64bit, quelque soit l'architecture du soft (32 ou 64bit), il faut faire ce qu'a indiqué BruNews.
|
|
mercredi 2 décembre 2009 à 19:32:41 |
Re : Problème gestion base de regsitre en C++ sous vista 64

gegematic
|
Salut,
Merci de cette réponse rapide.
J'avais bien lu des choses à propos de ce Wow6432Node, mais j'avais pas bien saisit.
J'ai pu tester, effectivement, je me retrouve sur Wow6432Node, et la valeur que je cherche à lire ne s'y trouve pas.
Ce qui est idiot, c'est que j'ai simplement besoin de lire, pas d'écrire, donc il faut que je modifie les parametres de la classe OpenKey pour qu'elle spécifie "lecture seule".
J'ai essayé avec les 2 options :
Code C/C++ : if (! clAutocad.ouvrir(HKEY_LOCAL_MACHINE,"SOFTWARE",KEY_ALL_ACCESS))//version originale
if (! clAutocad.ouvrir(HKEY_LOCAL_MACHINE,"SOFTWARE",KEY_READ))//ne donne rien de mieux
if (! clAutocad.ouvrir(HKEY_LOCAL_MACHINE,"SOFTWARE",KEY_WOW64_64KEY))//ne marche pas !
Je suis allé voir RegOpenKeyEx sur MSDN, et je n'ai rein vu de particulier concernant mon problème
par contre sur cette page :
Registry Key Security and Access Rights
mais je ne comprends pas les explications.
maintenant, c'est assez compliqué pour moi, je ne programme pratiquement qu'en lisp, et un peu en VB, sous la torture.
ce que je cherche, c'est une librairie qui integre cette nouveauté des Os 64, et qui me permette de faire marcher ce petit bout de prog.
Merci
|
|
mercredi 2 décembre 2009 à 21:09:00 |
Re : Problème gestion base de regsitre en C++ sous vista 64

BruNews
|
KEY_WOW64_64KEY | KEY_QUERY_VALUE
en 4eme param.
S'il te faut une lib pour 3 fonctions, t'es pas rendu.
RegOpenKeyEx
RegQueryValueEx
RegCloseKey
ciao...
BruNews, MVP VC++
|
|
jeudi 3 décembre 2009 à 19:52:18 |
Re : Problème gestion base de regsitre en C++ sous vista 64

gegematic
|
merci des réponse, mais tant pis, je ne comprend pas, je n'y arrive pas.
la classe clAutocad.ouvrir ne fait rien d'autre qu'un RegOpenKeyEx, mais elle n'accepte pas les parametres
(! clAutocad.ouvrir(HKEY_LOCAL_MACHINE,"SOFTWARE",KEY_WOW64_64KEY | KEY_QUERY_VALUE )
et moi je n'arrive pas a le refaire par un :
Code C/C++ : long resu;
long laCle;
resu=RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE",0,KEY_QUERY_VALUE);
if (resu==ERROR_SUCCESS)
initialisee=TRUE;
return initialisee;
ça, ça ne marche pas à cause de "lacle".
en fait, je ne cherche pas vraiement à programmer en c, mais simplement à maintenir en fonctionnement un programme qui m'était bien utile, mais que je n'arrive plus à comprendre ...
salut,
Gégé
|
|
Cette discussion est classée dans : base, code, hkey, software, endl
Répondre à ce message
Sujets en rapport avec ce message
sql et c++ [ par gogeta2003 ]
Bonjour, J'ai un petit problème, je voudrais insérer des valeurs dans ma base de donnée en passant par un edit, du genre: mySQL=mysql_init(NULL);<br
Aide : Patch anti sasser.b [ par juki_webmaster ]
Bonjour,Je me suis remis au developpement c++ sous dev cpp 4.Je realise un patch contre sasser.b.worm, en suivant l'indication ;http://www.symantec.co
Manipulation de la base de registre [ par yserver ]
Mon pb est pour ecrire des clefs ds la base de registe. Il s'agit de plusieurs types different il uy en a en tout 26. J'ai donc utilise un tableau de
Code C++ pour se connecter à une base SQL [ par Poolman ]
Voila J'aimerais savoir si quelqun pourrait m'envoyer le code permettant d'acceder à une base de donnée via internet, j'utilise DOBC.... Merci d'avanc
ecrire une valeur dans la base de registre [ par yerosnimus ]
bonjour,en dépit de toute la littérature trouvée sur ce site concernant l'écriture de clé dans la base de registre windows, je n'y arrive pas ou pas t
Base de données MYSQL [ par JR07 ]
Je voudrais savoir si quelqu'un aurait du code avec des requêtes Mysql, qui permettent d'écrire et de lire dans une base de données. Le code que je so
trie des colonnes dans listview [ par demo42 ]
bonjours j' ai une base de données mysql et je voudrai trier ma listview encliquant sur une colonne.. comment faire sans faire intervenir la base de d
probleme création d'une clé de registre [ par stefbuet ]
Salut, en regardant les sources du site, j'ai réussi à extraire un pti bou de code mais sa ne marche pas completement:en effet, le chemin mycompagny/m
Software pour optimiser du code [ par serialtom ]
Salut a tous !Existe il un software qui permet de reperer les calculs ou operations gourmandes en temps de calcul ? (de preference un freeware ...)mer
SQLCHAR en char [ par jerem3000 ]
Bonjours, Je développe actuellement un petit logiciel qui accède a une base de donnée accès. Le problème est que je récupère les donnée de la base av
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|