Saber si MSOffice está activado o no

205 views
Skip to first unread message

Ricardo Sassy

unread,
Jan 4, 2022, 6:55:29 AM1/4/22
to oo...@googlegroups.com

Hola a todo el grupo.

Espero que hayan comenzado muy bien el 2022.

En mis sistemas administrativos hago un uso intensivo de la generación de planillas Excel usando objetos COM/OLE.

Frecuentemente me enfrento con el problema de que si Office no está “activado” (o sea que se instaló sin clave de licencia) el método que escribe valores en las celdas arroja un error OLE y cancela el programa:

 

 

Por eso estoy buscando alguna forma “programática” que me permita saber anticipadamente si el Office instalado en el equipo está activado o no, en cuyo caso le invalidaría al usuario la posibilidad de generar los reportes en formato excel.

¿Alguien conoce alguna forma de hacer esto?.

Puede ser un método o propiedad del objeto, una clave de registro, etc. o sea cualquier cosa que me indique el estado de situación de Office.

 

Desde ya muchas gracias.

Ricardo Sassy     

image001.jpg

Nippur Lagash

unread,
Jan 4, 2022, 8:11:09 AM1/4/22
to oo...@googlegroups.com
Hola Ricardo, encontré este link, tiene un apartado que usa CMD y otro utilizando el regedit, tal vez te sirva para implementar algo similar desde tus programas.

Cómo ver la clave de producto o número de serial de Office 2019 y Office 2016

Supongo que si tiene la clave de producto es porque está activado.

Saludos,
Fer.MDQ

--
Has recibido este mensaje porque estás suscrito al grupo "[oohg]" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a oohg+uns...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/oohg/067e01d80161%24fdd54e60%24f97feb20%24%40gmail.com.


--
Nippur
Mar del Plata
Buenos Aires
Argentina

Ricardo Sassy

unread,
Jan 4, 2022, 8:03:48 PM1/4/22
to oo...@googlegroups.com

Hola Fernando.

Gracias por colaborarme.

El método basado en la lectura de claves del registro lo probé pero no me resultó útil porque cada versión de Office guarda las claves en distintas ramas del registro por lo tanto no hay un lugar centralizado desde donde rescatar esa info.

Estoy seguro que tiene que existir alguna propiedad del objeto OLE que permita saber el “estatus” de Office.

Seguiré buscando.

 

Saludos y gracias…

Ricardo Sassy

 

image001.jpg

Jorge Garate

unread,
Jan 5, 2022, 9:09:28 AM1/5/22
to [oohg]
Hola a todos y Feliz y Próspero Año.

He usado dos versiones:

*  Esta es una antigua

oExcel := TOleAuto():New( "Excel.Application" )
IF Ole2TxtError() != "S_OK"
   MsgStop("Excel no está disponible.", "Error")
   Salir()
endif

****************

*  Esta es mas nueva
xMensaje := oExcel:=Win_OleCreateObject('Excel.Application')

* MSGINFO( "*"+xMensaje+"*" )    <---  aquí se puede revisar el mensaje que da.
IF (xMensaje = NIL)
   PlayExclamation() ; MsgInfo('Error!!. MS Excel NO disponible. ['+Win_OleErrorText()+']')
   Salir()
ENDIF

Saludos.

Jorge

Ricardo Sassy

unread,
Jan 5, 2022, 1:05:49 PM1/5/22
to oo...@googlegroups.com

Hola Jorge.

Gracias por la colaboración.

El problema no se trata de detectar si Office está instalado o no sino de saber si está “activado”.

Al instalar Office sin una clave de producto queda funcionando bajo una modalidad recortada que no permite el uso de ciertos métodos y propiedades del objeto OLE y eso es lo que me trae inconvenientes con los usuarios.

 

Saludos...

Ricardo Sassy  

 

 

Reply all
Reply to author
Forward
0 new messages