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链接Oracle数据库的方法
Jun 28 Python
Django中的Signal代码详解
Feb 05 Python
详解python字节码
Feb 07 Python
利用Python实现原创工具的Logo与Help
Dec 03 Python
用Python实现将一张图片分成9宫格的示例
Jul 05 Python
python selenium自动化测试框架搭建的方法步骤
Jun 14 Python
Python StringIO及BytesIO包使用方法解析
Jun 15 Python
Python获取android设备cpu和内存占用情况
Nov 15 Python
使用Python提取文本中含有特定字符串的方法示例
Dec 09 Python
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
Nov 11 Python
python playwright 自动等待和断言详解
Nov 27 Python
Python读取和写入Excel数据
Apr 20 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 explode()函数用法、切分字符串
2012/10/03 PHP
PHP进阶学习之Geo的地图定位算法详解
2019/06/19 PHP
javascript 面向对象编程 function也是类
2009/09/17 Javascript
js获取元素到文档区域document的(横向、纵向)坐标的两种方法
2013/05/17 Javascript
jquery插件jquery倒计时插件分享
2013/12/27 Javascript
jQuery删除节点的三个方法即remove()detach()和empty()
2013/12/27 Javascript
jquery插件冲突(jquery.noconflict)解决方法分享
2014/03/20 Javascript
JavaScript实现复制内容到粘贴板代码
2016/03/31 Javascript
JS实现全屏的四种写法
2016/12/30 Javascript
js绑定事件和解绑事件
2017/04/27 Javascript
JS实现的走迷宫小游戏完整实例
2017/07/19 Javascript
原生JS+CSS实现炫酷重力模拟弹跳系统的登录页面
2017/11/01 Javascript
vue 实现剪裁图片并上传服务器功能
2018/03/01 Javascript
js/jQuery实现全选效果
2019/06/17 jQuery
vue+elementUI 实现内容区域高度自适应的示例
2020/09/26 Javascript
vue组件实现移动端九宫格转盘抽奖
2020/10/16 Javascript
Pycharm技巧之代码跳转该如何回退
2017/07/16 Python
Python基于辗转相除法求解最大公约数的方法示例
2018/04/04 Python
python opencv人脸检测提取及保存方法
2018/08/03 Python
Python3非对称加密算法RSA实例详解
2018/12/06 Python
Python实现微信消息防撤回功能的实例代码
2019/04/29 Python
python通过实例讲解反射机制
2019/10/17 Python
python实现矩阵和array数组之间的转换
2019/11/29 Python
python使用pymongo与MongoDB基本交互操作示例
2020/04/09 Python
运行Python编写的程序方法实例
2020/10/21 Python
Lululemon加拿大官网:加拿大知名体育服装零售商
2019/04/12 全球购物
大专计算机个人求职的自我评价
2013/10/21 职场文书
项目负责人任命书
2014/06/04 职场文书
欢迎家长标语
2014/10/08 职场文书
开展党的群众路线教育实践活动个人对照检查材料
2014/11/05 职场文书
小学家长通知书评语
2014/12/31 职场文书
2016年九九重阳节活动总结
2016/04/01 职场文书
二手手机买卖合同范本(2019年版)
2019/10/28 职场文书
浅谈MySQL表空间回收的正确姿势
2021/10/05 MySQL
5道关于python基础 while循环练习题
2021/11/27 Python
源码分析Redis中 set 和 sorted set 的使用方法
2022/03/22 Redis