Solución:
Del artículo de TechNet sobre las ediciones de 64 bits de Office 2010:
Si ha instalado Office 2010, incluido Microsoft Outlook 2010, Outlook establece una clave de registro denominada
Bitness de tipo REG_SZ en la computadora en la que está instalado. los
Bitness La clave de registro indica si la instalación de Outlook 2010 es de 32 bits o de 64 bits. Esto puede resultar útil para los administradores interesados en auditar equipos para determinar las versiones instaladas de Office 2010 en su organización.
- Ruta de registro: HKEY_LOCAL_MACHINE Software Microsoft Office 14.0 Outlook
- si ha instalado Office 2013, utilice esta ruta de registro: HKEY_LOCAL_MACHINE Software Microsoft Office 15.0 Outlook
- Clave de registro: Bitness
- Valor: x86 o x64
y en otra parte del mismo artículo:
A partir de Office 2010, Outlook está disponible como una aplicación de 32 bits y una aplicación de 64 bits. La versión (bitness) de Outlook que elija depende de la edición del sistema operativo Windows (32 bits o 64 bits) y la edición de Office 2010 (32 o 64 bits) que esté instalada en la computadora, si Office ya está instalado en esa computadora.
Los factores que determinan la viabilidad de instalar una versión de Outlook de 32 bits o 64 bits incluyen los siguientes:
- Puede instalar Office 2010 de 32 bits y Microsoft Outlook 2010 de 32 bits en una edición compatible de 32 o 64 bits del sistema operativo Windows. Puede instalar la versión de 64 bits de Office 2010 y Outlook 2010 de 64 bits solo en un sistema operativo compatible de 64 bits.
- La instalación predeterminada de Office 2010 en una edición de 64 bits del sistema operativo Windows es Office 2010 de 32 bits.
- El valor de bits de una versión instalada de Outlook es siempre el mismo que el valor de bits de Office 2010, si Office está instalado en la misma computadora. Es decir, no se puede instalar una versión de 32 bits de Outlook 2010 en la misma computadora en la que ya están instaladas versiones de 64 bits de otras aplicaciones de Office 2010, como Microsoft Word 2010 de 64 bits o Microsoft Excel 2010 de 64 bits. , no se puede instalar una versión de 64 bits de Outlook 2010 en el mismo equipo en el que ya están instaladas versiones de 32 bits de otras aplicaciones de Office.
Probé la respuesta de Otaku y parece que el valor de bitness de Outlook se establece incluso cuando Outlook no está instalado, aunque el artículo al que se hace referencia no indica claramente que este sería el caso.
Para agregar a la respuesta de vtrz, aquí hay una función que escribí para Inno Setup:
const
{ Constants for GetBinaryType return values. }
SCS_32BIT_BINARY = 0;
SCS_64BIT_BINARY = 6;
{ There are other values that GetBinaryType can return, but we're }
{ not interested in them. }
{ Declare Win32 function }
function GetBinaryType(lpApplicationName: AnsiString; var lpBinaryType: Integer): Boolean;
external '[email protected] stdcall';
function Is64BitExcelFromRegisteredExe(): Boolean;
var
excelPath: String;
binaryType: Integer;
begin
Result := False; { Default value - assume 32-bit unless proven otherwise. }
{ RegQueryStringValue second param is '' to get the (default) value for the key }
{ with no sub-key name, as described at }
{ http://stackoverflow.com/questions/913938/ }
if IsWin64() and RegQueryStringValue(HKEY_LOCAL_MACHINE,
'SOFTWAREMicrosoftWindowsCurrentVersionApp Pathsexcel.exe',
'', excelPath) then begin
{ We've got the path to Excel. }
try
if GetBinaryType(excelPath, binaryType) then begin
Result := (binaryType = SCS_64BIT_BINARY);
end;
except
{ Ignore - better just to assume it's 32-bit than to let the installation }
{ fail. This could fail because the GetBinaryType function is not }
{ available. I understand it's only available in Windows 2000 }
{ Professional onwards. }
end;
end;
end;