tengo saber que office idioma esta desinstalar cómo como cambiar activado wix registry ms-office vsto add-in

wix - que - cómo saber si el office es de 32 o 64 bits



Detecta si MS Office instalado es de 32 bits o 64 bits utilizando el registro (4)

Puede usar el código de producto (GUID) para identificar el bitness de las aplicaciones de Office. Consulte Cómo detectar si MS Office 2010 instalado tiene 32 o 64 bits para obtener más información.

Quiero instalar vsto addin basado en la versión de Excel (32 bit o 64 bit). Estoy planeando agrupar tanto msis de 32 bits como de 64 bits e instalar uno determinando la versión de Excel. Puedo encontrar este enlace para detectar si la oficina 2010 es de 32 bits o de 64 bits mediante el registro. Detecte si Office es de 32 bits o de 64 bits a través del registro. Pero quiero verificar si Excel 2007 y 2013 son de 32 bits o de 64 bits. ¿Es posible detectarlos a través del registro?


No puede detectarlo de manera confiable desde el registro (llamada directa). Mejor es crear un módulo de instalador personalizado en C # o VB.net, buscar el Código de producto de la aplicación. Desde el código del producto, puedes obtener el Bitness.

El código del producto también se obtiene del registro, pero permite que la aplicación de Office lo maneje.

Private IsExcel32Bit As Boolean = False Private IsExcel64Bit As Boolean = False Private ReadOnly STR_prdCodeDelimeter As Char = CChar("-") Private Sub GetExcelBitness(ByVal exApp As Microsoft.Office.Interop.Excel.Application) Dim prdCode As String = exApp.ProductCode If Not String.IsNullOrEmpty(prdCode) AndAlso CInt(prdCode.Split(STR_prdCodeDelimeter)(3)(0).ToString) = 0 Then IsExcel32Bit = True ElseIf Not String.IsNullOrEmpty(prdCode) AndAlso CInt(prdCode.Split(STR_prdCodeDelimeter)(3)(0).ToString) = 1 Then IsExcel64Bit = True End If End Sub

Por cierto, mantener ambos instaladores por separado te ayudará en el futuro. A veces, el código del producto puede ser nulo o incorrecto si MS Office no está instalado correctamente.


Primero, busque la versión instalada de Outlook en esta clave:

HKEY_CLASSES_ROOT / Outlook.Application / CurVer

El valor será Outlook.Application.15 (para 2013). Luego analiza ese valor para obtener el número entero y busca esta clave:

HKEY_LOCAL_MACHINE / Software / Wow6432Node / Microsoft / Office / 15.0 / Outlook

Si existe, verifique el valor de Bitness para determinar si es de 32 bits (x86) o 64 bits (x64). Si no existe, asume 32 bits.


Dado: Office32 está instalado en "Archivos de programa (x86)", esto funciona para mí.

Básicamente, verifico si winword.exe está en algún lugar debajo de la clave. Si no instalan la palabra parte, bueno, difícil en este punto. Lo uso para ejecutar instaladores msi de 32 bits o 64 bits de forma variable para oficina.

<Fragment> <Property Id="IS_32BITOFFICE"> <DirectorySearch Path="[ProgramFilesFolder]/Microsoft Office" Depth="4" AssignToProperty="no" Id="IS_32BIT_OFFICE_DIRSEARCH"> <FileSearch Name="winword.exe" /> </DirectorySearch> </Property> <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER"> <Component Id="WIN64_OFFICE32_MSI"> <File Id="WIN64_OFFICE32_MSI" src="WIN64_OFFICE32.txt"/> <Condition>IS_32BITOFFICE</Condition> </Component> <Component Id="WIN64_OFFICE64_MSI"> <File Id="WIN64_OFFICE64_MSI" src="WIN64_OFFICE64.txt"/> <Condition>NOT IS_32BITOFFICE</Condition> </Component> </ComponentGroup> </Fragment>