Accès à la base de registre en c++ managé

0/5 (2 avis)

Vue 12 867 fois - Téléchargée 1 057 fois

Description

Le C++ "Managed" permet a partir d'une classe de lire et d'écrire sur
la base de registre.
Mais attention !!

Codes Sources

A voir également

Ajouter un commentaire Commentaires
rastalalalolo Messages postés 17 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 15 janvier 2010
18 janv. 2010 à 16:32
Slt Gegematic

voila qq liens qui m ont aider pr le souci partagé que tu rencontres.

pr ecrire de 32bits vers 64 bits le tag KEY_WOW64_64KEY doit etre specifier.
http://msdn.microsoft.com/en-us/library/aa384129%28VS.85%29.aspx

http://www.tech-archive.net/Archive/Development/microsoft.public.win32.programmer.kernel/2006-05/msg00486.html
http://www.tech-archive.net/Archive/Development/microsoft.public.win32.programmer.kernel/2006-05/msg00515.html

je pensais utiliser ce tag pr voir ma clé apparaitre mais en fait:
le tag KEY_WOW64_64KEY n'est pas util pr ecrire dans SOFTWARE avec une appli 32bits dans un registre 64bits puisque tte les clés crées/utilisés provenant d'appli 32bits se trouve en fait sous une arborescence "Wow6432Node" et non plus dans HKLM\SOFTWARE* :
ex: HKLM\SOFTWARE\Wow6432Node\*

je decouvre comme toi
bon code bonne semaine
gegematic Messages postés 5 Date d'inscription mardi 5 juin 2007 Statut Membre Dernière intervention 3 décembre 2009
1 déc. 2009 à 18:58
Bonjour,
sous Vista 64, il semble que cette librairie ne marche pas avec la clé "Software"
voici mon code test :
la partie HARDWARE marche, mais pas la partie SOFTWARE.
Une idée ?
merci

/*
Fonction principale du programme
*/

#include "RegistryForm.h"

int __stdcall WinMain()
{
RegistryForm *MainForm = new RegistryForm;
Application::Run(MainForm); // RegistryForm comme fenêtre principale
return 0; // de l'application
}

#using <mscorlib.dll>
using namespace System;
using namespace Microsoft::Win32;

// Fonction principale de l'application
int main(void)
{
RegistryKey * pRegKey = Registry::LocalMachine;
pRegKey = pRegKey->OpenSubKey(L"HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0");
Object *pValue = pRegKey->GetValue(L"VendorIdentifier");
Console::WriteLine(L"The central processor of this machine is: {0}.", pValue);

RegistryKey * sRegKey = Registry::LocalMachine;
sRegKey = sRegKey->OpenSubKey(L"SOFTWARE\\Autodesk\\AutoCAD\\R18.0\\ACAD-8002:40C");
Object *sValue = sRegKey->GetValue(L"AcadLocation");

if (! sValue)
Console::WriteLine(L"La valeur est ", sValue);
else
Console::WriteLine("Non trouvé");
return 0;
}

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.