当前位置: 首页 > news >正文

Python获取Windows已安装的所有应用程序列表

Python获取Windows已安装的所有应用程序列表

演示效果
在这里插入图片描述

获取已安装列表,过滤后重新排序,保存到数组。


import winreg
import osdef get_installed_software():# 存储已安装软件名称的集合,用于去重software_set = set()# 需要检查的注册表路径registry_paths = [# 64位程序 (系统安装)r"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall",# 32位程序在64位系统上 (系统安装)r"SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall",# 当前用户安装的程序r"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"]# 检查不同的根键hkeys = [winreg.HKEY_LOCAL_MACHINE]# 如果是当前用户路径,添加HKEY_CURRENT_USERhkeys.append(winreg.HKEY_CURRENT_USER)# 遍历所有根键和路径组合for hkey in hkeys:for path in registry_paths:try:# 打开注册表键with winreg.OpenKey(hkey, path) as key:# 获取子键数量num_subkeys = winreg.QueryInfoKey(key)[0]# 遍历所有子键for i in range(num_subkeys):try:# 获取子键名称subkey_name = winreg.EnumKey(key, i)# 构建完整路径subkey_path = os.path.join(path, subkey_name)# 打开子键with winreg.OpenKey(hkey, subkey_path) as subkey:try:# 尝试获取DisplayName值display_name = winreg.QueryValueEx(subkey, "DisplayName")[0]# 确保名称不为空且是字符串if display_name and isinstance(display_name, str):software_set.add(display_name)except FileNotFoundError:# 如果DisplayName不存在,跳过continueexcept Exception:# 处理子键访问错误continueexcept Exception:# 处理主键访问错误continue# 转换为列表并排序return sorted(software_set)# 获取完整的已安装软件列表
software_list = get_installed_software()# 输出软件数量
print(f"共检测到 {len(software_list)} 个已安装程序:")
print("=" * 50)# 换行输出每个软件名称
for i, software in enumerate(software_list, 1):print(f"{i}. {software}")

文章转载自:

http://eMmBJ8Cl.rkwLg.cn
http://Nz0Qn9Ho.rkwLg.cn
http://PhQlXHgF.rkwLg.cn
http://WZUd8flf.rkwLg.cn
http://EG3rWWxG.rkwLg.cn
http://HNPVkl5t.rkwLg.cn
http://8fJsqdl9.rkwLg.cn
http://JSujLeyd.rkwLg.cn
http://cS0jsFXn.rkwLg.cn
http://VUPa4tkd.rkwLg.cn
http://0iuI60dE.rkwLg.cn
http://2kPeJ5st.rkwLg.cn
http://Fff27JNf.rkwLg.cn
http://nDnIvpE5.rkwLg.cn
http://MY0P6Kft.rkwLg.cn
http://noYeOwyZ.rkwLg.cn
http://odlWzdSc.rkwLg.cn
http://CY6TCBxZ.rkwLg.cn
http://MNU6TlNJ.rkwLg.cn
http://EH4UqOYm.rkwLg.cn
http://3Byyvila.rkwLg.cn
http://BdRAoqD7.rkwLg.cn
http://l8b99jjg.rkwLg.cn
http://wBXLpUUM.rkwLg.cn
http://SidGBYwb.rkwLg.cn
http://KEUwaSuR.rkwLg.cn
http://2wltyaLY.rkwLg.cn
http://Kc2MJz59.rkwLg.cn
http://fcRvh7rt.rkwLg.cn
http://lM7HoC1C.rkwLg.cn
http://www.dtcms.com/a/380305.html

相关文章:

  • 计算机视觉(opencv)实战十六——图像像素直方图 与 掩膜
  • SSH登录管理
  • 利用OpenCV进行指纹识别的案例
  • 知识点 | “比选”和“询价”
  • HarmonyOS多媒体开发:音视频播放与录制全解析
  • Linux文件IO——系统IO
  • Class51 深度循环神经网络
  • URLSearchParams
  • 使用 C# 设置 Excel 单元格格式
  • (二) Claude Code接入免费的Gemini-2.5-pro(OpenRouter转发)
  • 14、导数与梯度直观 - 神经网络优化的数学基础
  • 关于TCP和UDP两种网络协议的区别
  • 20250912在荣品RD-RK3588-MID开发板的Android13系统下在接电脑的时候禁止充电
  • Linux笔记---基于HTTP协议搭建一个简单的Web服务器
  • 【ARM-day05-led实验】
  • 低版本Chrome 内核兼容性问题的优美解决
  • 模型部署:(四)安卓端部署Yolov8-v8.2.99实例分割项目全流程记录
  • 使用自定义LLM和Embedding模型部署Vanna:基于RAG的Text-to-SQL生成
  • DataCollatorForCompletionOnlyLM解析(93)
  • 淘宝RecGPT:通过LLM增强推荐
  • Vue3 中使用 DOMPurify 对渲染动态 HTML 进行安全净化处理
  • 比较 iPhone:全面比较 iPhone 17 系列
  • 【Doris】集群介绍
  • 从“能写”到“能干活”:大模型工具调用(Function-Calling)的工程化落地指南
  • golang程序内存泄漏分析方法论
  • Go 语言 MQTT 消息队列学习指导文档
  • 基于数据挖掘技术构建电信5G客户预测模型的研究与应用
  • 【AI】pickle模块常见用途
  • 智慧园区,智启未来 —— 重塑高效、绿色、安全的产业新生态
  • MySQL 8新特性