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备份文件的脚本
Aug 11 Python
python实现dnspod自动更新dns解析的方法
Feb 14 Python
python安装与使用redis的方法
Apr 19 Python
python3+PyQt5实现使用剪贴板做复制与粘帖示例
Jan 24 Python
python 给DataFrame增加index行名和columns列名的实现方法
Jun 08 Python
Python产生Gnuplot绘图数据的方法
Nov 09 Python
python字典嵌套字典的情况下找到某个key的value详解
Jul 10 Python
python 数据生成excel导出(xlwt,wlsxwrite)代码实例
Aug 23 Python
python Matplotlib模块的使用
Sep 16 Python
如何基于pandas读取csv后合并两个股票
Sep 25 Python
python中entry用法讲解
Dec 04 Python
Python中tkinter的用户登录管理的实现
Apr 22 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中批量替换文件名的实现代码
2011/07/20 PHP
yii2.0整合阿里云oss上传单个文件的示例
2017/09/19 PHP
PHP实现的AES双向加密解密功能示例【128位】
2018/09/03 PHP
php过滤htmlspecialchars() 函数实现把预定义的字符转换为 HTML 实体用法分析
2019/06/25 PHP
Yii中特殊行为ActionFilter的使用方法示例
2020/10/18 PHP
关于IE浏览器以及Firefox下的javascript冒泡事件的响应层级
2010/10/14 Javascript
window.dialogArguments 使用说明
2011/04/11 Javascript
jquery 定位input元素的几种方法小结
2013/07/28 Javascript
js加入收藏夹代码(兼容ie/ff/op)
2014/05/16 Javascript
javascript实现阻止iOS APP中的链接打开Safari浏览器
2014/06/12 Javascript
jQuery中 attr() 方法使用小结
2015/05/03 Javascript
JavaScript中pop()方法的使用教程
2015/06/09 Javascript
EasyUI闪屏EasyUI页面加载提示(原理+代码+效果图)
2016/02/21 Javascript
Jq通过td获取同行其它列td的方法
2016/10/05 Javascript
Bootstrap按钮功能之查询按钮和重置按钮
2016/10/26 Javascript
Node.js用readline模块实现输入输出
2016/12/16 Javascript
javascript 动态生成css代码的两种方法
2017/03/17 Javascript
微信小程序授权获取用户详细信息openid的实例详解
2017/09/20 Javascript
基于webpack4搭建的react项目框架的方法
2018/06/30 Javascript
vue项目首屏加载时间优化实战
2019/04/23 Javascript
Vue的路由及路由钩子函数的实现
2019/07/02 Javascript
layui 实现加载动画以及非真实加载进度的方法
2019/09/23 Javascript
15 分钟掌握vue-next响应式原理
2019/10/13 Javascript
在vue中使用cookie记住用户上次选择的实例(本次例子中为下拉框)
2020/09/11 Javascript
如何在VUE中使用vue-awesome-swiper
2021/01/04 Vue.js
Python的collections模块中的OrderedDict有序字典
2016/07/07 Python
Python实现的维尼吉亚密码算法示例
2018/04/12 Python
Python系统监控模块psutil功能与经典用法分析
2018/05/24 Python
python实现kmp算法的实例代码
2019/04/03 Python
python如何使用Redis构建分布式锁
2020/01/16 Python
HTML5 声明兼容IE的写法
2011/05/16 HTML / CSS
GUESS德国官网:美国牛仔服装品牌
2017/02/14 全球购物
数控机床专业自荐信
2014/05/19 职场文书
项目验收申请报告
2015/05/15 职场文书
商业计划书如何写?关键问题有哪些?
2019/07/11 职场文书
springboot读取resources下文件的方式详解
2022/06/21 Java/Android