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
ecDynDatalpszSubKey
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.