La Web del Programador: Comunidad de Programadores
 
    Pregunta:  44569 - COMO EJECUTAR UN INSTALABLE DESDE VISUAL BASIC
Autor:  Rafael Gual Hernandez
Necesito desarrollar una aplicación en Visual Basic que:

1) Verifique la versión de acrobat reader instalada.
2) En caso de que la versión sea diferente de la versión 5.0 la desinstale e instale la versión 5.0.
3) Este proceso debe ser transparente para el usuario (de preferencia).

Me gustaría saber como verificar la versión del acrobat reader desde visual basic.
Como ejecutar la instalación del acrobat reader sin que tenga que intervenir el usuario; es decir, sin que tenga que seleccionar opciones como: "Si acepto", "Aceptar" o "Siguiente".

Sé que en el último de los casos podría utilizar la opción "sendkeys", pero puede existir alguna alternativa.

De antamano, gracias.

  Respuesta:  SuNcO
Uhm.. para ver cual version esta instalada, puedes checar el registro de Windows.. por ejemplo yo tengo la version 7.0 y aparece aqui :

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AC76BA86-7AD7-1034-7B44-A70000000000}\DisplayName

Para borrarlo ahi mismo te da el comando en la clave de UninstallString que en este caso es :

MsiExec.exe /I{AC76BA86-7AD7-1034-7B44-A70000000000}

Para ejecutar un comando desde VB pues con la funcion Shell

Ahora, no se si el Adobe tenga algun parametro para hacer eso de que sea invisible para el usuario..

Otra opcion para no enviar SendKeys es ver el Hwnd de la ventana de instalacion, enviarle un comando de Apis para ocultarlo :

ShowWindow hWnd, SW_HIDE

Saber cuales son los numeros de los Botones a presionar.. esos se saben con algun codigo como por ejempl oesta Api (que saca todos los botones, textbox, etc.. de una ventana)

Declare Function EnumChildWindows Lib "user32" (ByVal hWndParent As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long

Y cosas asi.. no tan sencillo pro posible

Con SendMessage sabiendolo utilizar puedes activar cualquier boton, menu, etc..