cs_VTwin13
Messages postés samedi 29 juillet 2006Date d'inscription
28 décembre 2006
Dernière intervention
-
23 déc. 2006 à 14:53 - Dernière réponse : cs_VTwin13
Messages postés samedi 29 juillet 2006Date d'inscription
28 décembre 2006
Dernière intervention
- 23 déc. 2006 à 16:41
J'ai recupéré sur msdn le bout de code ci dessous. Il permet de lister les clé de registres à un endroit définit.
Mon probleme est que je souhaite savoir si une clé existe. Je parcours donc le tableau de TCHAR ou sont listée les libellés des clés de registre, et je le compare à la clé recherchée :
Le probleme c'est que ca marche pas, j'ai essayé de faire de plusieurs maniere mais mon if est toujours faux. Je sais en gros que mon achKey est en unicode, et qu'il faut que je le compare a du texte unicode, mais je ne sais pas comment faire malgré mes recherches
void QueryKey(HKEY hKey)
{
TCHAR achKey[MAX_KEY_LENGTH]; // buffer for subkey name
DWORD cbName; // size of name string
TCHAR achClass[MAX_PATH] = TEXT(""); // buffer for class name
DWORD cchClassName = MAX_PATH; // size of class string
DWORD cSubKeys=0; // number of subkeys
DWORD cbMaxSubKey; // longest subkey size
DWORD cchMaxClass; // longest class string
DWORD cValues; // number of values for key
DWORD cchMaxValue; // longest value name
DWORD cbMaxValueData; // longest value data
DWORD cbSecurityDescriptor; // size of security descriptor
FILETIME ftLastWriteTime; // last write time
// Get the class name and the value count.
retCode = RegQueryInfoKey(
hKey, // key handle
achClass, // buffer for class name
&cchClassName, // size of class string
NULL, // reserved
&cSubKeys, // number of subkeys
&cbMaxSubKey, // longest subkey size
&cchMaxClass, // longest class string
&cValues, // number of values for this key
&cchMaxValue, // longest value name
&cbMaxValueData, // longest value data
&cbSecurityDescriptor, // security descriptor
&ftLastWriteTime); // last write time
// Enumerate the subkeys, until RegEnumKeyEx fails.
if (cSubKeys)
{
for (i=0; i<cSubKeys; i++)
{
cbName = MAX_KEY_LENGTH;
retCode = RegEnumKeyEx(hKey, i,
achKey,
&cbName,
NULL,
NULL,
NULL,
&ftLastWriteTime);
if (retCode == ERROR_SUCCESS)
{
Si achKey est un tableau de TCHAR, il faut utiliser _tcscmp() et
TEXT("Microsoft .NET Framework 2.0"), sinon tu aura des problemes quand
tu compilera en ansi.
Cette réponse vous a-t-elle aidé ?Merci pour votre retour.
N'oubliez pas de prendre quelques secondes pour remercier l'auteur : Merci pour votre retour.
Nous sommes désolés. Notre objectif est de vous donner la meilleure réponse possible.