Bonjour,
Je suis un peu largué !!
Je suis sur un OS 64bit (2003 et 7) et j'exécute un process 32bit.
Pour moi si on ne spécifie rien, c'est la clé 32bit qui est lue ou écrite, mais ça ne semble pas être le cas :
- vrai pour HKLM
- faux pour HKCU
J'ai fait un petit programme de test.
Les 2 valeurs lues sont en réalité dans Software\Wow6432Node\Company\Software. Cool !!!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 lRes = RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"Software\\Wow6432Node\\Company\\Software", 0, KEY_READ | KEY_WRITE, &hKey); lRes = RegQueryValueEx(hKey, L"MainGUIRect", NULL, &dwType, (LPBYTE)pszValue, &dwCount); lRes = RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"Software\\Company\\Software", 0, KEY_READ | KEY_WRITE, &hKey); lRes = RegQueryValueEx(hKey, L"MainGUIRect", NULL, &dwType, (LPBYTE)pszValue, &dwCount);
Par contre :
La 1ere est lue dans Software\Wow6432Node\Company\Software et la 2e dans Software\Company\Software.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 lRes = RegOpenKeyEx(HKEY_CURRENT_USER, L"Software\\Wow6432Node\\Company\\Software", 0, KEY_READ | KEY_WRITE, &hKey); lRes = RegQueryValueEx(hKey, L"MainGUIRect", NULL, &dwType, (LPBYTE)pszValue, &dwCount); lRes = RegOpenKeyEx(HKEY_CURRENT_USER, L"Software\\Company\\Software", 0, KEY_READ | KEY_WRITE, &hKey); lRes = RegQueryValueEx(hKey, L"MainGUIRect", NULL, &dwType, (LPBYTE)pszValue, &dwCount);
Ca me surprend beaucoup !!!
Avez-vous déjà eu ce genre de soucis ?
mon problème est que RegOpenKeyEx se trouve dans une fonction générique pour les process 32 et 64bit, donc je ne peux pas utiliser le flag KEY_WOW64_32KEY .
Merci.
Partager