Herramienta de escritorio para Windows que recopila información detallada del sistema (hardware y software) y genera reportes en formatos HTML, PDF y Excel.
- Interfaz Gráfica Sencilla: Permite seleccionar fácilmente qué información incluir en el reporte.
- Recolección de Datos Asíncrona: La interfaz no se congela mientras se recopila la información.
- Múltiples Formatos de Salida: Genera reportes limpios y legibles en:
- HTML
- Excel (.xlsx)
- Información Recopilada:
- Información general del sistema (Fabricante, Modelo).
- Red (Hostname, IP, Dominio).
- BIOS (Fabricante, Versión, Número de serie).
- CPU (Modelo, Generación, Núcleos).
- Memoria RAM (Capacidad, Velocidad).
- Discos de Almacenamiento (Fabricante, Capacidad, Número de Serie).
- Sistema Operativo (Nombre, Versión, Arquitectura).
- Impresoras instaladas.
- Lista de software instalado (puede ser un proceso lento).
El proyecto está dividido en tres componentes principales para separar la lógica de la presentación:
-
InfoSystem_GUI.py:- Es el punto de entrada de la aplicación.
- Crea la interfaz de usuario utilizando la librería
tkinter. - Gestiona las selecciones del usuario y lanza el proceso de recolección de datos en un hilo secundario para mantener la fluidez de la aplicación.
-
InfoSystem_backend.py:- Contiene toda la lógica para obtener la información del sistema.
- Utiliza la librería
wmipara interactuar con la API de Windows Management Instrumentation y extraer los datos de hardware y software.
-
report_generator.py:- Se encarga de tomar los datos recopilados por el backend.
- Utiliza las librerías
reportlabpara crear los documentos PDF yopenpyxlpara los archivos de Excel. - Genera los archivos de reporte con un nombre estandarizado que incluye el hostname y la fecha/hora.
- El usuario ejecuta la aplicación (
InfoSystem_GUI.py). - Se presenta una ventana donde puede marcar/desmarcar las categorías de información que desea obtener y el formato de salida.
- Al hacer clic en "Generar Reporte", la GUI llama a las funciones del
InfoSystem_backend.pypara recolectar los datos en segundo plano. - Una vez recopilados los datos, se pasan al
report_generator.py. - El generador crea los archivos correspondientes (HTML, PDF, Excel) en la misma carpeta donde se encuentra el ejecutable.
- La aplicación muestra un mensaje de éxito indicando los nombres de los archivos generados.
Para compilar la aplicación en un único archivo .exe auto-contenido, se utiliza PyInstaller.
- Python instalado.
- Instalar las dependencias listadas en
requirements.txt. Abre una terminal y ejecuta:pip install -r requirements.txt
- El ícono
SysInf.icodebe estar en la misma carpeta que los scripts.
La forma más sencilla de compilar es utilizando el archivo de especificaciones (.spec) que ya está configurado.
-
Abre una terminal (cmd o PowerShell) en la carpeta raíz del proyecto.
-
Ejecuta el siguiente comando:
pyinstaller "SystemInfo.spec" -
PyInstaller creará las carpetas
buildydist. Dentro dedist, encontrarás el archivoSystemInfo.exelisto para ser utilizado.
Alternativamente, si quieres generar el archivo .spec desde cero, puedes usar un comando como este:
pyinstaller --name "SystemInfo" --onefile --windowed --icon="SysInf.ico" InfoSystem_GUI.py