Listar programas instalados con VBA Excel

Hola mi querido público de todo el mundo! Hoy veremos cómo Listar programas instalados con VBA

¿Por qué crear una herramienta para listar programas con Excel VBA?

Te será de mucha utilidad saber con qué programas trabajas en tu día a día, si tu finalidad es controlar el rendimiento de tu PC

¿Puedo saber los programas instalados en una PC que no sea la mía?

¡Claro! Esta pregunta ya le he respondido antes, para ello usaremos el conocimiento obtenido en publicaciones previas

Programemos nuestro lector y luego lo ocultaremos

Explicaré paso a paso cómo crear este programa muy curioso

Lo ideal es trabajar en un formulario, pero lo trabajaré en una hoja para abarcar a más audiencia

Muy bien debemos seguir los 5 siguientes pasos:

Paso #1 – Ejecutar el CMD desde Excel

¡Vale! Es hora de empezar, nuestro objetivo es Listar programas instalados con VBA

Si en el cmd de Windows ejecutamos el comando wmic product get name

Obtenemos lo siguiente:

Listar programas con Excel VBA

Ahora programaremos desde VBA, en un nuevo módulo escribir lo siguiente

El cual nos generá un archivo en el mismo lugar en donde esté guardado nuestra macrito

Listar programas CMD Excel VBA

Paso #2 – Esperar a que se ejecute el CMD | Listar programas instalados VBA

Muy bien, existen muchas formas de realizar este proceso, por ejemplo podemos usar a la API WaitForSingleObject

Pero cargaría mucho mi código, y no es la finalidad

Al ejecutar la instrucción que nos lista los programas de Windows desde el CMD, automáticamente nos crea el archivo de texto.

Después de creado el archivo de texto, se debe esperar unos segundos a la instrucción se ejecute; en paralelo mi bonita macro continúa con su ejecución

Es decir mi macro, tal cual está desarrollada hasta ahora, termina la ejecución antes de que el archivo de texto tenga contenido

Debemos retrasar la ejecución, usaremos a FileLen

Si bien el Shell crea un archivo de texto cuando VBA lo ejecuta, el proceso es en paralelo por lo que es necesario esperar unos segundos

Por ello he considerado el código Application.Wait (Now + TimeValue(«00:00:02»))

Para retrasar el proceso dos segundos

Con dos segundos de retraso tengo la seguridad que el CMD sigue ejecutando el comando y el archivo TXT ya fue creado

Paso #3 – Leer el archivo de texto desde Excel VBA

Esta parte es super sencilla, sólo es listar la data, mi querido lector, considera que sólo tengo una hoja en mi archivo Excel

Y obtenemos lo siguiente:

Totos los programas de windows con VBA

Muy bien hasta aquí hemos terminado el código para listar archivos de nuestra PC con VBA Excel

Ahora continuaré con el código necesario para responder la segunda pregunta y obtener el código necesario para leer la PC de otra persona

DESCARGAR ARCHIVO: LISTADO DE PROGRAMAS.XLSM (Contraseña: tutorialesexcel.com)

Paso #4 – Enviar el código a mi formulario en Google Form

Esto ya lo hemos visto en un POST anterior, lo mejor es usar a Google Form en vez de un FTP

Si deseas ver a detalle este proceso, te recomiendo leer mi publicación Usar a Google Form como base de datos VBA Excel

Muy bien crearé un formulario, con sólo una casilla (Ustedes pueden crear más para guardar más información de la PC)

Google Form Excel VBA

Y modificaré el código al siguiente:

Y si revisamos nuestro formulario, ya nos mostrará la data

Para mejorar el código, podemos agregar información de la PC, como nombre, IP, información del sistema operativo, etc. Esto lo dejaré a criterio del lector

Ing. Luis Rojas

Paso #5 – Ocultar nuestro código | Listar programas instalados VBA

Muy bien, ahora debemos ocultar nuestro código. Lo cual se puede hacer de muchas formas

Yo te aconsejo crear un módulo oculto y ejecutar un proceso cuando se abra el archivo

Si creamos un módulo oculto, y no agregamos más código en nuestro programa, Office no detectará el código y este se ejecutará sin necesidad de habilitar las macros

Ing. Luis Rojas

Si deseas leer más información sobre módulos ocultos te aconsejo leer el siguiente post Módulos ocultos en Excel VBA

Entonces procedemos a cambiar el nombre a nuestro módulo y crear un nuevo módulo 1

Ocultar codigo en excel vba

Y modificaremos las propiedades con un lector hexadecimal de la siguiente forma

Abrimos nuestro archivo y veremos lo siguiente

Modulo invisible con excel vba

En ThisWorkbook agregamos lo siguiente

Y listo hemos terminado, cuando el archivo se abra, automáticamente se ejecutará nuestra macro

Lo subimos a Virus Total, tal cual está

Virus total macro excel

Si eliminamos el autoopen

Seguridad Excel VBA

Lo que sí te aconsejo adicionar es a la API GetShortPathName

Cualquier consulta la puedes dejar en los comentarios o enviar un mensaje al correo programador@tutorialesexcel.com

Recuerda que puedes descargar todos mis archivos excel desde Repositorio Tutoriales Excel, la contraseña de todos los archivos es tutorialesexcel.com

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *