Olá, resumindo o que quero fazer é uma maneira de encontrar todos sem exceção os programas/.exe do pc usando python. Mais detalhes ao fim. esse é o método que encontrei, usando IA. Código: import winreg import subprocess import os import json # <-- Importação adicionada def find_apps_winget(): apps = [] try: result = subprocess.run( ["winget", "list"], capture_output=True, text=True, check=True ) lines = result.stdout.splitlines() for line in lines[1:]: if not line.strip() or line.startswith("---"): continue parts = line.split() if len(parts) < 3: continue name = " ".join(parts[:-2]) app_id = parts[-2] version = parts[-1] apps.append({ "name": name, "id": app_id, "version": version, "path": "", "source": "winget" }) except Exception as e: print(f"Erro ao executar winget: {e}") return apps def get_apps_from_registry(): apps = [] registry_paths = [ (winreg.HKEY_LOCAL_MACHINE, r"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"), (winreg.HKEY_LOCAL_MACHINE, r"SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall"), (winreg.HKEY_CURRENT_USER, r"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"), ] for hkey, reg_path in registry_paths: try: with winreg.OpenKey(hkey, reg_path) as key: for i in range(winreg.QueryInfoKey(key)[0]): try: subkey_name = winreg.EnumKey(key, i) with winreg.OpenKey(key, subkey_name) as subkey: name, _ = winreg.QueryValueEx(subkey, "DisplayName") path = "" try: path, _ = winreg.QueryValueEx(subkey, "InstallLocation") except FileNotFoundError: pass apps.append({ "name": name, "id": "", "version": "", "path": path, "source": "registry" }) except FileNotFoundError: continue except FileNotFoundError: continue return apps def get_all_installed_apps(): registry_apps = get_apps_from_registry() winget_apps = find_apps_winget() all_apps = registry_apps + winget_apps all_apps.sort(key=lambda x: x["name"].lower(),) return all_apps def salvar_em_json(dados, nome_arquivo="apps_instalados.json"): try: with open(nome_arquivo, "w", encoding="utf-8") as f: json.dump(dados, f, ensure_ascii=False, indent=4) print(f"\n✅ Aplicativos salvos com sucesso em '{nome_arquivo}'") except Exception as e: print(f"Erro ao salvar em JSON: {e}") if __name__ == "__main__": apps = get_all_installed_apps() header = f"{'Nome':<40} {'Caminho':<60} {'Versão':<15} {'Fonte':<10}" print(header) print("-" * len(header)) for app in apps: name = app["name"] path = app.get("path", "") version = app.get("version", "") source = app.get("source", "") print(f"{name:<40} {path:<60} {version:<15} {source:<10}") # Salvar em JSON salvar_em_json(apps) Esse foi o que conseguir usando o comando winget e verificando o registro do windows, ainda não está completo falta saber o caminho onde está o executável/exe e o objetivo é encontrar o caminho para fazer um código que abra o programa para mim, eu vim perguntar aqui pois sentir que estou muito dependente de IA. Como estou usando um comando, quero salvar os arquivos em arquivos .json pois demora muito para carregar toda vez que eu for usar. Sou novo na programação então ignorem erros ou então minha pergunta mal estruturada. Continue reading...