2010-12-13 19 views
8

he creado una instalación con Inno Setup y querían consultar el registro utilizando Pascal ScriptInno RegKeyExists de configuración en sistemas de 64 bits

if RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\Classes\\Installer\UpgradeCodes\342603A924F08FA4B95B5C283FC13D13') then 

Mi disposición es de 32 bits (como es mi software Quiero instalar), pero en Sistemas de 64 bits, la consulta se redirige a HKCR\Wow6432Node\\Installer\UpgradeCodes

Por supuesto, la clave no se encuentra, aunque está allí. ¿Cómo puedo detectar la clave a pesar de que mi configuración sigue siendo de 32 bits?

Respuesta

21

Lo descubrí. Usted puede hacer una función de ayuda de este tipo en la secuencia de comandos:

function GetHKLM: Integer; 
begin 
    if IsWin64 then 
    Result := HKLM64 
    else 
    Result := HKLM32; 
end; 

A continuación, utilizarlo como por ejemplo .:

RegQueryStringValue(
    GetHKLM, 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment', 'XYZ', Variable); 
+0

Gracias por contestar. –

+0

Gracias ... luché contra esto por horas –

+1

¿Cómo declaras ** clave **? ¿De qué tipo es? Acabo de recibir un error de desajuste de tipo. – NickG

Cuestiones relacionadas