Windows ¿Algún administrador de programas que permita ordenar por carpetas?

Carlos E. Flores

Zombie
Miembro del Equipo
MOD
Se incorporó
17 Marzo 2005
Mensajes
28.650
Demasiado desorden en el administrador de programas me tiene loco.

Muestra demasiadas cosas y no permite ordenarlo.
Además que hay probramas que usan módulos o cosas así que l instalador del windows lo muestra como si fueran programas independientes, lo que es más desorden aún.

Por ejemplo:

1741483949928.png


Medio kilombo.
Debería poder ponerse, por ejemplo, todo lo Microsoft en una carpeta, todo lo de native Instruments en otra...y así.

Por cierto, estoy en Windows 11 pero uso el panel de control antiguo. El nuevo se demora varios minutos en abrir y aún no tengo idea por qué pasa eso, pero va para otro tema.

Le pregunté a Copilot y pasó esto:

Yo:
Necesito un programa que administre la instalación y desisntalación de programas permitiendo ordenarlos por carpetas.

Copilot:
A continuación te presento un ejemplo de programa en Python que cumple con la función de administrar la instalación y desinstalación de programas, organizándolos en "carpetas" o categorías. Este ejemplo simula (con comandos de impresión) la ejecución de órdenes reales para instalar o desinstalar, de modo que la idea principal es estructurar la información en categorías (carpetas) y permitir la selección del programa deseado para proceder con la acción.

> Nota: > - El código usa comandos de ejemplo (como sudo apt install ...), propios de entornos Linux/Debian. > - Para usar comandos reales, deberás asegurarte de tener los permisos necesarios y adaptar los comandos al sistema operativo que estés usando (por ejemplo, en Windows o macOS). > - Se incluye manejo básico de errores y selección interactiva vía terminal.

Puedes usar este código como punto de partida y adaptarlo a tus necesidades específicas.

python
#!/usr/bin/env python3
import subprocess

# Diccionario con las "carpetas" (categorías) y los programas asociados.
programs = {
"Oficina": [
{"name": "LibreOffice", "install_cmd": "sudo apt install libreoffice", "uninstall_cmd": "sudo apt remove libreoffice"},
{"name": "OnlyOffice", "install_cmd": "sudo apt install onlyoffice", "uninstall_cmd": "sudo apt remove onlyoffice"}
],
"Edición": [
{"name": "GIMP", "install_cmd": "sudo apt install gimp", "uninstall_cmd": "sudo apt remove gimp"},
{"name": "Inkscape", "install_cmd": "sudo apt install inkscape", "uninstall_cmd": "sudo apt remove inkscape"}
],
"Herramientas": [
{"name": "Git", "install_cmd": "sudo apt install git", "uninstall_cmd": "sudo apt remove git"}
]
}

def list_programs():
print("\n-------------------------------")
print("Programas disponibles:")
for category, apps in programs.items():
print(f"\nCarpeta: {category}")
for index, app in enumerate(apps, start=1):
print(f" {index}. {app['name']}")
print("-------------------------------")

def select_category():
categories = list(programs.keys())
print("\nSelecciona una carpeta:")
for idx, cat in enumerate(categories, start=1):
print(f" {idx}. {cat}")
try:
choice = int(input("Ingresa el número de la carpeta: ")) - 1
if 0 <= choice < len(categories):
return categories[choice]
else:
print("Opción no válida.")
return None
except ValueError:
print("Entrada no válida.")
return None

def select_program(category):
apps = programs[category]
print(f"\nSelecciona un programa de la carpeta {category}:")
for idx, app in enumerate(apps, start=1):
print(f" {idx}. {app['name']}")
try:
choice = int(input("Ingresa el número del programa: ")) - 1
if 0 <= choice < len(apps):
return apps[choice]
else:
print("Opción no válida.")
return None
except ValueError:
print("Entrada no válida.")
return None

def install_program(app):
print(f"\nInstalando {app['name']}...")
try:
# En una implementación real se podría llamar:
# subprocess.run(app["install_cmd"], shell=True, check=True)
print(f"Ejecutando comando: {app['install_cmd']}")
print(f"{app['name']} instalado exitosamente.")
except Exception as e:
print(f"Error instalando {app['name']}: {e}")

def uninstall_program(app):
print(f"\nDesinstalando {app['name']}...")
try:
# En una implementación real se podría llamar:
# subprocess.run(app["uninstall_cmd"], shell=True, check=True)
print(f"Ejecutando comando: {app['uninstall_cmd']}")
print(f"{app['name']} desinstalado exitosamente.")
except Exception as e:
print(f"Error desinstalando {app['name']}: {e}")

def main():
while True:
print("\n=== Gestor de Programas ===")
print("1. Listar programas")
print("2. Instalar un programa")
print("3. Desinstalar un programa")
print("4. Salir")

op = input("Elige una opción: ")

if op == '1':
list_programs()
elif op == '2':
cat = select_category()
if cat:
app = select_program(cat)
if app:
install_program(app)
elif op == '3':
cat = select_category()
if cat:
app = select_program(cat)
if app:
uninstall_program(app)
elif op == '4':
print("Saliendo del programa...")
break
else:
print("Opción no reconocida. Intenta nuevamente.")

if __name__ == "__main__":
main()

Explicación y detalles del código​

  1. Estructura de datos: Se utiliza un diccionario llamado programs en el que las claves representan las carpetas (por ejemplo, "Oficina", "Edición" y "Herramientas") y cada una contiene una lista de diccionarios con información del programa (nombre, comando de instalación y comando de desinstalación).
  2. Funciones de utilidad:
    • list_programs(): Lista todos los programas organizados por carpeta para dar una visión general.
    • select_category(): Permite al usuario elegir la carpeta/categoría de interés.
    • select_program(category): Después de elegir la categoría, el usuario selecciona un programa en esa carpeta.
    • install_program(app) y uninstall_program(app): Simulan la ejecución de los comandos correspondientes. En una implementación real, podrías descomentar la línea de subprocess.run(...) para ejecutar el comando.
  3. Menú principal interactivo: El ciclo while en main() muestra un menú simple para listar, instalar, desinstalar o salir del programa. Esto permite al usuario navegar de forma interactiva por las opciones.

Ideas adicionales para profundizar​

  • Interfaz gráfica: Podrías utilizar bibliotecas como Tkinter, PyQt o Kivy para crear una interfaz más amigable, en la que las carpetas aparezcan en un árbol de navegación y las acciones se realicen con botones en lugar de ingresar números en consola.
  • Persistencia de datos: Actualmente, la lista de programas está definida en el código. Si deseas que el administrador se mantenga actualizado o permita agregar/quitar programas en tiempo real, podrías almacenar la información en una base de datos o en archivos de configuración (por ejemplo, JSON o YAML) y cargarla al inicio.
  • Funciones reales de instalación/desinstalación: Dependiendo del sistema operativo, el mecanismo para instalar o desinstalar programas varía (por ejemplo, apt en Linux, winget o chocolatey en Windows, o brew en macOS). Recuerda que ejecutar comandos de instalación o desinstalación generalmente requiere permisos de administrador, por lo que se debe gestionar de forma segura la elevación de privilegios.
  • Control de errores y logs: Es recomendable implementar un sistema de logs para registrar los resultados de las operaciones, permitiendo diagnosticar problemas en instalaciones o desinstalaciones.
Esta solución debería servirte como un punto de partida robusto para desarrollar un administrador de programas que, además, te permita organizar los programas en "carpetas" lógicas según tus necesidades. ¿Te gustaría explorar alguna de estas ideas en mayor profundidad o discutir sobre alternativas para gestionar instalaciones en otros sistemas operativos?
 

alex_xp

Gold Member
Se incorporó
12 Octubre 2004
Mensajes
2.633
😮 y yo pensaba que tenía la caga en mi pc!!!
Antiguamente uno podía crear una carpeta y tirar esos accesos directos a esa carpeta, cómo hace tiempo no lo hago ni idea si se puede hacer en win 10/11
 
Upvote 0

Carlos E. Flores

Zombie
Miembro del Equipo
MOD
Se incorporó
17 Marzo 2005
Mensajes
28.650

😮 y yo pensaba que tenía la caga en mi pc!!!
Antiguamente uno podía crear una carpeta y tirar esos accesos directos a esa carpeta, cómo hace tiempo no lo hago ni idea si se puede hacer en win 10/11

Ese es el administrador de programas, no el menú para abrir los programas. Con eso no tengo problemas:

1741536808128.png



Donde está el kilombo es con los programas instalados en el menú del administrador:

1741536887978.png
 
Upvote 0

alex_xp

Gold Member
Se incorporó
12 Octubre 2004
Mensajes
2.633
Ese es el administrador de programas, no el menú para abrir los programas. Con eso no tengo problemas:

Ver adjunto 40512


Donde está el kilombo es con los programas instalados en el menú del administrador:

Ver adjunto 40514
Ahhh! ahora te entiendo.
Pues ni idea, es un culo tener programas sobre programas. A lo mejor con winget pueda servir, es una aplicación de linea de comandos
 
Upvote 0

Carlos E. Flores

Zombie
Miembro del Equipo
MOD
Se incorporó
17 Marzo 2005
Mensajes
28.650
Ahhh! ahora te entiendo.
Pues ni idea, es un culo tener programas sobre programas. A lo mejor con winget pueda servir, es una aplicación de linea de comandos

Sí lo tengo instalado, no sé si por default o con powertoys.

Pero necesito ir revisando que hay instalado o qué falta de una forma más eficiente.

Tengo que editar audio (son cientos de plugins), imagen y video para mis cosas.
 
Upvote 0

ZlesM

Miembro Regular
Se incorporó
5 Marzo 2011
Mensajes
78
ponlo en cualquier modo que no sea lista (el que tienes creo que es lista) y de ahí puedes agrupar por editor/fecha/asdf

1743359053492.png


Despues click derecho en cualquier espacio en blanco dentro de la carpeta > agrupar por>bla
 
Última modificación:
Upvote 0

doncoyote

The ignored one
Se incorporó
23 Mayo 2006
Mensajes
2.759
Esto es lo máximo a lo que puedes optar ya que hasta ahora, no hay forma en Windows o con aplicaciones de terceros que te permita una vista de carpetas.

Ordena por editor:

1743359158434.png


Lo otro que puedes hacer es probar herramientas de desintalación como Revo Uninstaller o Geek Uninstaller, suelen tener más flexibilidad para generar vistas.
 
Upvote 0

ZlesM

Miembro Regular
Se incorporó
5 Marzo 2011
Mensajes
78
Esto es lo máximo a lo que puedes optar ya que hasta ahora, no hay forma en Windows o con aplicaciones de terceros que te permita una vista de carpetas.

Ordena por editor:

Ver adjunto 40845

Lo otro que puedes hacer es probar herramientas de desintalación como Revo Uninstaller o Geek Uninstaller, suelen tener más flexibilidad para generar vistas.
Te faltó cambiar de lista a cualquier otro y te deja agrupar, queda con botones para colapsar
1743360534175.png
 
Upvote 0
Subir