python实现查找所有程序的安装信息


Posted in Python onFebruary 18, 2020

如题,答案是:通过注册表查找。

windows系统中有两支子健存储有所有程序的安装信息:

1,HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Store

python实现查找所有程序的安装信息

以下是查找360浏览器安装路径的python代码示例:

import win32con, win32api

def find_360se_path(): 
 upper_keyword = '360SE.EXE' 
 path = None 
 sub_key = r'Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Store' 
 key = win32api.RegOpenKey(win32con.HKEY_CURRENT_USER, sub_key, 0, win32con.KEY_READ) 
 info = win32api.RegQueryInfoKey(key) 
 for i in range(0, info[1]):  
  value = win32api.RegEnumValue(key, i)  
  if value[0].upper().endswith(upper_keyword):
   path = value[0]   
   break 
 win32api.RegCloseKey(key) 
 return path

2,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths

python实现查找所有程序的安装信息

以下是查找360浏览器安装路径的python代码示例:

import win32con, win32apidef 

find_360se_path(): 
 upper_value_keyword = '360SE.EXE' 
 upper_item_name_keyword = '360SE6.EXE' 
 path = None 
 sub_key1 = r'SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths' 
 key1 = win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE, sub_key1, 0, win32con.KEY_READ) 
 info1 = win32api.RegQueryInfoKey(key1) 
 for i in range(0, info1[0]):  
  key_name = win32api.RegEnumKey(key1, i)  
  if key_name.upper() == upper_item_name_keyword:
   sub_key2 = sub_key1 + '\\' + key_name
   key2 = win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE, sub_key2, 0, win32con.KEY_READ)   
   info2 = win32api.RegQueryInfoKey(key2)   
   for j in range(0, info2[1]):    
    key_value = win32api.RegEnumValue(key2, j)[1]
    if key_value.upper().endswith(upper_value_keyword): 
     path = key_value     
     break   
   win32api.RegCloseKey(key2)   
  break 
 win32api.RegCloseKey(key1) 
 return path
Python 相关文章推荐
python ip正则式
May 07 Python
Django的数据模型访问多对多键值的方法
Jul 21 Python
Python中的字符串替换操作示例
Jun 27 Python
Python enumerate索引迭代代码解析
Jan 19 Python
深入理解Python中的 __new__ 和 __init__及区别介绍
Sep 17 Python
使用Python OpenCV为CNN增加图像样本的实现
Jun 10 Python
使用python实现对元素的长截图功能
Nov 14 Python
基于python 等频分箱qcut问题的解决
Mar 03 Python
python对execl 处理操作代码
Jun 22 Python
Pytest单元测试框架如何实现参数化
Sep 05 Python
从Pytorch模型pth文件中读取参数成numpy矩阵的操作
Mar 04 Python
Matlab求解数组中的最大值及它所在的具体位置
Apr 16 Python
Python3中configparser模块读写ini文件并解析配置的用法详解
Feb 18 #Python
Pytorch mask_select 函数的用法详解
Feb 18 #Python
pytorch masked_fill报错的解决
Feb 18 #Python
python分别打包出32位和64位应用程序
Feb 18 #Python
pandas和spark dataframe互相转换实例详解
Feb 18 #Python
PyTorch中Tensor的数据统计示例
Feb 17 #Python
pytorch实现Tensor变量之间的转换
Feb 17 #Python
You might like
php替换超长文本中的特殊字符的函数代码
2012/05/22 PHP
php打印输出棋盘的实现方法
2014/12/23 PHP
php实现插入数组但不影响原有顺序的方法
2015/03/27 PHP
php实现比较两个字符串日期大小的方法
2015/05/12 PHP
浅谈php数组array_change_key_case() 函数和array_chunk()函数
2016/10/22 PHP
jquery(live)中File input的change方法只起一次作用的解决办法
2011/10/21 Javascript
jquery仿QQ商城带左右按钮控制焦点图片切换滚动效果
2013/06/27 Javascript
js冒泡法和数组转换成字符串示例代码
2013/08/14 Javascript
node.js中的console用法总结
2014/12/15 Javascript
js+css实现tab菜单切换效果的方法
2015/01/20 Javascript
jQuery异步上传文件插件ajaxFileUpload详细介绍
2015/05/19 Javascript
BootStrap表单宽度设置方法
2017/03/10 Javascript
Angular中$broadcast和$emit的使用方法详解
2017/05/22 Javascript
自适应布局meta标签中viewport、content、width、initial-scale、minimum-scale、maximum-scale总结
2017/08/18 Javascript
JavaScript实现兼容IE6的收起折叠与展开效果实例
2017/09/20 Javascript
vue设置一开始进入的页面教程
2019/10/28 Javascript
JavaScript实现多个物体同时运动
2020/03/12 Javascript
Python数据结构与算法之字典树实现方法示例
2017/12/13 Python
python实现数据库跨服务器迁移
2018/04/12 Python
Python pip 常用命令汇总
2020/10/19 Python
SmartBuyGlasses丹麦:网上购买名牌太阳镜、眼镜和隐形眼镜
2016/10/01 全球购物
VICHY薇姿美国官方网站:欧洲药房第一的抗衰老品牌
2017/11/22 全球购物
哥德堡通行证:Gothenburg Pass
2019/12/09 全球购物
Linux文件系统类型
2012/02/15 面试题
有abstract方法的类一定要用abstract修饰吗
2016/03/14 面试题
精细化工应届生求职信
2013/11/17 职场文书
自动化专业职业生涯规划书范文
2014/01/16 职场文书
中秋节主持词
2014/04/02 职场文书
民主生活会整改措施(党员)
2014/09/18 职场文书
幼儿园感恩节活动方案
2014/10/06 职场文书
教师群众路线教育实践活动学习笔记
2014/11/05 职场文书
班级管理经验交流材料
2015/11/02 职场文书
golang json数组拼接的实例
2021/04/28 Golang
OpenCV-Python实现怀旧滤镜与连环画滤镜
2021/06/09 Python
Ruby序列化和持久化存储 Marshal和Pstore介绍
2022/04/18 Ruby
Moment的feature导致线上bug解决分析
2022/09/23 Javascript