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

File Registry Redirection (VirtualStore)

File Registry Redirection (VirtualStore)

Nowy postprzez RoaDevil2 » piątek, 23 marca 2012, 14:41

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
Ostatnio edytowano piątek, 23 marca 2012, 15:47 przez RoaDevil2, łącznie edytowano 1 raz
Avatar użytkownika
RoaDevil2
Bladawiec
Bladawiec
 
Posty: 10
Dołączył(a): czwartek, 22 marca 2012, 16:56
Lokalizacja: Wrocław
Podziękował : 3
Otrzymał podziękowań: 0
System operacyjny: XP, Win7 32, Win 7 64
Kompilator: BCB6, Builder XE2
Gadu Gadu: 2549159
    Windows 7Firefox

Re: File Registry Redirection (VirtualStore)

Nowy postprzez polymorphism » piątek, 23 marca 2012, 15:01

Skompiluj aplikację jako 64-bitową lub użyj odpowiedniej flagi określającej prawa dostępu do kluczy rejestru -> link
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: File Registry Redirection (VirtualStore)

Nowy postprzez RoaDevil2 » piątek, 23 marca 2012, 16:05

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
Avatar użytkownika
RoaDevil2
Bladawiec
Bladawiec
 
Posty: 10
Dołączył(a): czwartek, 22 marca 2012, 16:56
Lokalizacja: Wrocław
Podziękował : 3
Otrzymał podziękowań: 0
System operacyjny: XP, Win7 32, Win 7 64
Kompilator: BCB6, Builder XE2
Gadu Gadu: 2549159
    Windows 7Firefox

Re: File Registry Redirection (VirtualStore)

Nowy postprzez polymorphism » piątek, 23 marca 2012, 16:13

Ty chcesz mieć dostęp do kluczy 64-bitowych, czyli powinieneś użyć flagi KEY_WOW64_64KEY.
C++ Reference - opis wszystkich klas STL-a i funkcji C.

Za ten post autor polymorphism otrzymał podziękowanie od:
RoaDevil2
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: File Registry Redirection (VirtualStore)

Nowy postprzez RoaDevil2 » piątek, 23 marca 2012, 16:55

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?:)
Avatar użytkownika
RoaDevil2
Bladawiec
Bladawiec
 
Posty: 10
Dołączył(a): czwartek, 22 marca 2012, 16:56
Lokalizacja: Wrocław
Podziękował : 3
Otrzymał podziękowań: 0
System operacyjny: XP, Win7 32, Win 7 64
Kompilator: BCB6, Builder XE2
Gadu Gadu: 2549159
    Windows 7Firefox

Re: File Registry Redirection (VirtualStore)

Nowy postprzez polymorphism » piątek, 23 marca 2012, 21:21

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.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: File Registry Redirection (VirtualStore)

Nowy postprzez RoaDevil2 » piątek, 23 marca 2012, 23:39

Właśnie przetestowałem - działa idealnie na 32bit i 64bit
Dzięki!
Avatar użytkownika
RoaDevil2
Bladawiec
Bladawiec
 
Posty: 10
Dołączył(a): czwartek, 22 marca 2012, 16:56
Lokalizacja: Wrocław
Podziękował : 3
Otrzymał podziękowań: 0
System operacyjny: XP, Win7 32, Win 7 64
Kompilator: BCB6, Builder XE2
Gadu Gadu: 2549159
    Windows 7Firefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Windows 7

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 1 gość