CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - File Registry Redirection (VirtualStore)
Strona 1 z 1

File Registry Redirection (VirtualStore)

Nowy postNapisane: piątek, 23 marca 2012, 14:41
przez RoaDevil2
Nie wiem czy ktoś z Was pisał program, który korzysta z Rejestru pod Win 7 64bit.
Standardowe:
KOD cpp:     UKRYJ  
TRegistry* Rejestr = new TRegistry(KEY_READ);
   Rejestr->RootKey = HKEY_LOCAL_MACHINE;
   Rejestr->Access = KEY_WRITE;
   Rejestr->OpenKey("Software\\MojKlucz", true);
   Rejestr->CloseKey();
   Rejestr->Free();
 

nie działa, ponieważ bez uprawnień Administratora zapisuje w:
HKEY_CLASSES_ROOT\VirtualStore\MACHINE\SOFTWARE\Wow6432Node\MojKlucz
Uruchomienie aplikacji jako administrator zapisuje w:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\MojKlucz

A chciałbym żeby program stworzył klucz w:
HKEY_LOCAL_MACHINE\SOFTWARE\MojKlucz

Aplikacja nie może przez to działać poprawnie :/
(Wyłączenie UAC nie pomaga)

- siedze nad tym i w sumie to działa program wiec możliwe, że ta ścieżka nie ma aż tak wielkiego znaczenia... hmm

Re: File Registry Redirection (VirtualStore)

Nowy postNapisane: piątek, 23 marca 2012, 15:01
przez polymorphism
Skompiluj aplikację jako 64-bitową lub użyj odpowiedniej flagi określającej prawa dostępu do kluczy rejestru -> link

Re: File Registry Redirection (VirtualStore)

Nowy postNapisane: piątek, 23 marca 2012, 16:05
przez RoaDevil2
polymorphism napisał(a):Skompiluj aplikację jako 64-bitową lub użyj odpowiedniej flagi określającej prawa dostępu do kluczy rejestru -> link

KOD cpp:     UKRYJ  
TRegistry* Rejestr = new TRegistry(KEY_READ);
   Rejestr->RootKey = HKEY_LOCAL_MACHINE;
   Rejestr->Access = KEY_WRITE;
   Rejestr->Access = Rejestr->Access | KEY_WOW64_32KEY;
   Rejestr->OpenKey("Software\\MojKlucz", true);


Zrobiłem tak ale nie zmienilo scizeki zapisu

Re: File Registry Redirection (VirtualStore)

Nowy postNapisane: piątek, 23 marca 2012, 16:13
przez polymorphism
Ty chcesz mieć dostęp do kluczy 64-bitowych, czyli powinieneś użyć flagi KEY_WOW64_64KEY.

Re: File Registry Redirection (VirtualStore)

Nowy postNapisane: piątek, 23 marca 2012, 16:55
przez RoaDevil2
polymorphism napisał(a):Ty chcesz mieć dostęp do kluczy 64-bitowych, czyli powinieneś użyć flagi KEY_WOW64_64KEY.

A na XP/Win7 32-bit też będzie hulać z takim ustawieniem?:)

Re: File Registry Redirection (VirtualStore)

Nowy postNapisane: piątek, 23 marca 2012, 21:21
przez polymorphism
Nie wiem, nie sprawdzałem, ale podejrzewam, że na OS-ach 32-bitowych flagi te są ignorowane, wszak mechanizm WoW64 jest zaimplementowany tylko na systemach 64-bitowych.

Re: File Registry Redirection (VirtualStore)

Nowy postNapisane: piątek, 23 marca 2012, 23:39
przez RoaDevil2
Właśnie przetestowałem - działa idealnie na 32bit i 64bit
Dzięki!