Detectar trayecto de instalación de LibreOffice
Hola colegas pascaleros.
¿ Conocer alguna manera de averiguar si una aplicación está instalada (la opción "programas y características" del Panel de Control) pero que funcione si que nuestro ejecutable tenga privilegios de administrador ? En el registro hay una lista de software instalado, pero si no estoy ejecutando mi software como administrador no la puede leer. En particular es para detectar el trayecto de lnstalación de la suite LibreOffice, que la utilizo desde línea de comandos (en modo no-interactivo / invisible) para convertir archivos RTF o DOC hacia el formato PDF, con la ventaja de que puedo firmar los archivos con un certioficado. La versión de 64 bits por defecto se instala en C:\Program Files\LibreOffice\program ,igual estaba viendo de poder obtener este trayecto. Saludos. |
Hola!
No se si ya pudiste resolver el problema, pero en Delphi podés usar la siguiente función:
Si le pasas un nombre de archivo válido, te devuelve el archivo asociado. Si buscás por un .DOC y lo tenés ascociado a LibreOffice, te va a devolver la ubicación del exe que abre los .DOC. Hay que agregar ShellAPI a la lista de unidades del uses. ¡Espero te sirva! |
Cita:
No necesitaría saber el ejecutavble asociado a una extensión, lo que necesito es saber el trayecto de instalación de LibreOffice, o poder consultar una lista de los programas instalados para buscar el libreoffice y obtener de alguna manera el trayecto. Atte. Ramon |
Para obtener la ruta de instalación de otro programa utilizando Delphi, generalmente necesitarás buscar en el registro de Windows donde se suelen almacenar las rutas de instalación de las aplicaciones. Aquí te muestro cómo hacerlo:
Este ejemplo asume que estás buscando la ruta de instalación de un programa específico llamado "NombreDelPrograma". Asegúrate de reemplazar este nombre con el nombre real del programa que estás buscando. El código abrirá el registro en la ubicación comúnmente usada para programas instalados y buscará la clave del programa especificado. Luego, leerá el valor de la clave 'InstallLocation' para obtener la ruta de instalación. |
Gracias Casimito. El problema que tengo es que no puedo acceder HKEY_LOCAL_MACHINE si el usuario que ejecuta el software no tiene privilegios de administrador.
|
Al final como no encontré una manera de detectar ese trayecto sin tener privilegios de administrador, agregué un campo en la tabla de configuración donde especifico el trayecto manualmente.
|
La franja horaria es GMT +2. Ahora son las 01:59:43. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi