[C++]Nie czyta klucza rejestru


(Kamilmlody5) #1

Witam.

Program twierdzi, że klucz nie istnieje skoro jestem pewien, że podany adres do klucza jest poprawny. Oto kod:

HKEY klucz;

        if(RegOpenKeyExA(HKEY_LOCAL_MACHINE,"SOFTWARE\\Program",0,KEY_ALL_ACCESS,&klucz)!=ERROR_SUCCESS)

        {

            MessageBoxA(0,"Nie można otworzyć klucza","Błąd",MB_OK);

        }

        else

        {

            MessageBoxA(0,"Klucz otwarto poprawnie","OK",MB_OK);

        }

        RegCloseKey(klucz);

Gdzie jest błąd? Oto dokładna ścieżka po eksporcie z regedit: HKEY_LOCAL_MACHINE\SOFTWARE\Program


(Fiołek) #2

W Windowsach x64, gdy aplikacja jest 32-bitowa, HKEY_LOCAL_MACHINE wskazuje na 32-bitowe "mapowanie" na Wow6432Node. Trzeba mieć to na uwadze. Więcej informacji oczywiście na MSDN.


(Kamilmlody5) #3

Dzięki. Pozdrawiam.

Dla potomnych:

HKEY klucz;

        if(RegOpenKeyExA(HKEY_LOCAL_MACHINE,"SOFTWARE\\Program",0,KEY_ALL_ACCESS | KEY_WOW64_64KEY, &klucz)!=ERROR_SUCCESS)

        {

            MessageBoxA(0,"Nie można otworzyć klucza","Błąd",MB_OK);

        }

        else

        {

            MessageBoxA(0,"Klucz otwarto poprawnie","OK",MB_OK);

        }

        RegCloseKey(klucz);