cs_VTwin
Messages postés13Date d'inscriptionsamedi 29 juillet 2006StatutMembreDernière intervention28 décembre 2006
-
23 déc. 2006 à 14:53
cs_VTwin
Messages postés13Date d'inscriptionsamedi 29 juillet 2006StatutMembreDernière intervention28 décembre 2006
-
23 déc. 2006 à 16:41
Salut à vous et bonnes fetes !
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)
{
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 23 déc. 2006 à 15:55
Salut,
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.