Lors de la tentative de mise à niveau de certains logiciels C++ pour Windows 7, j'ai rencontré des problèmes de création de clés de registre.Création de clés de registre dans Windows 7
Ceci est mon code:
//
// Create a brand new registry key
//
LONG Registry::CreateRegister(std::string path)
{
HKEY hKey;
DWORD dwDisposition;
LONG openRes = RegCreateKeyEx(HKEY_CLASSES_ROOT,
path.c_str(),
0,
NULL,
REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS,
NULL,
&hKey,
&dwDisposition);
RegCloseKey(hKey);
return openRes;
}
Sous Windows XP, la fonction RegCreateKeyEx crée avec succès la clé de Registre, retour d'un succès (0) valeur. Dans Windows 7, j'obtiens une valeur de retour de 5 (accès refusé) de la même fonction. J'ai utilisé l'outil regedit pour m'assurer que mon compte dispose des autorisations complètes nécessaires, mais sans succès. Quelqu'un peut-il voir où je pourrais me tromper, ou s'il y a d'autres pièges et problèmes connus que je dois connaître lorsque j'utilise Visual Studio dans Windows 7?
Le logiciel est actuellement écrit dans Visual Studio 2003.
Merci d'avance.
Eh oui. Les utilisateurs normaux utilisent 'HKCU \ Software \ Classes'. – MSalters
Ce n'est pas nouveau pour Vista, les utilisateurs «normaux» avec un compte non-administrateur n'ont jamais pu écrire le HKCR. –
@nobugz - quoi de neuf pour Vista/7 est que les comptes utilisateurs avec droits d'administrateur sont également bloqués par défaut, jusqu'à ce qu'ils choisissent explicitement d'élever un processus. –