Mètode GetRegistryValueWow64


Quan esteu treballant en un Windows de 64 bits i llegiu una clau del registre des d'una aplicació de 32 bits, es redirigeix a la carpeta "SysWOW64", on està el registre de 32 bits. D'altra banda, si llegiu la mateixa clau del registre des d'una aplicació de 64 bits, la clau es llegeix del registre de 64 bits (a la carpeta "System32") i el seu valor pot ser diferent. Per tal de poder llegir una clau del registre de 64 bits des d'una aplicació de 32 bits, o una clau del registre de 32 bits des d'una aplicacíó de 64 bits, feu servir el mètode GetRegistryValueWow64 com s'explica tot seguit.

Prototip

GetRegistryValueWow64 Proto hKey:HKEY, lpszSubKey:LPSTR, lpszValueName:LPSTR, lpszValue:LPSTR

Sintaxi

Invoke GetRegistryValueWow64, hKey, lpszSubKey, lpszValueName, lpszValue

Funció

Accedeix a una clau del registre de 64 bits quan es crida des d'aplicacions de 32 bits, o a una clau del registre de 32 bits quan es crida des d'aplicacions de 64 bits.

Paràmetres

hKey

"Handle" d'una de les següents claus predefinides:

ecClassesRoot
ecCurrentUser
ecLocalMachine
ecUsers
ecPerformanceData
ecCurrentConfig
ecDynData

lpszSubKey

Punter a l'adreça efectiva d'una cadena acabada en zero amb el nom complet de la subclau que conté el valor el contingut del qual es vol obtenir.

lpszValueName

Punter a l'adreça efectiva d'una cadena acabada en zero amb el nom del valor el contingut del qual es vol obtenir.

lpszValue

Punter a l'adreça efectiva d'una cadena acabada en zero que rebrà el contingut del nom de valor.

Valor de retorn

Eax/Rax torna TRUE si s'ha pogut obtenir el valor, o FALSE si no.


OBSERVACIONS: El paràmetre lpszValue apunta a una cadena acabada en zero que rebrà el valor obtingut. Podeu omplir aquesta cadena amb el valor per defecte abans de cridar aquest mètode, atès que aquest serà el valor que es tornarà si no es troba el nom de valor indicat.

OBSERVACIONS: El mètode GetRegistryValueWow64 espera que lpszSubKey i lpszValueName siguin cadenes Unicode i omple lpszValue amb un valor Unicode si l'aplicació s'està executant com a Unicode. Altrament, espera que lpszSubKey i lpszValueName siguin cadenes ANSI i omple lpszValue amb un valor ANSI (vegeu el mètode IsAppUnicode). Podeu utilitzar GetRegistryValueWow64A per obtenir valors ANSI en aplicacions Unicode, o GetRegistryValueWow64W per obtenir valors Unicode en aplicacions ANSI.

IMPORTANT: La cadena apuntada per lpszValue ha de poder contenir fins a MAX_PATH caràcters.