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 字符串中的字符倒转
Sep 06 Python
python之模拟鼠标键盘动作具体实现
Dec 30 Python
Django中传递参数到URLconf的视图函数中的方法
Jul 18 Python
Python之日期与时间处理模块(date和datetime)
Feb 16 Python
Python实现读取文件最后n行的方法
Feb 23 Python
人脸识别经典算法一 特征脸方法(Eigenface)
Mar 13 Python
python 拷贝特定后缀名文件,并保留原始目录结构的实例
Apr 27 Python
python列表每个元素同增同减和列表元素去空格的实例
Jul 20 Python
用python写测试数据文件过程解析
Sep 25 Python
Python的PIL库中getpixel方法的使用
Apr 09 Python
python脚本监控logstash进程并邮件告警实例
Apr 28 Python
10个顶级Python实用库推荐
Mar 04 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的header和asp中的redirect比较
2006/10/09 PHP
PHP编程函数安全篇
2013/01/08 PHP
解决phpmyadmin中缺少mysqli扩展问题的方法
2013/05/06 PHP
PHP中if和or运行效率对比
2014/12/12 PHP
深入解析PHP的Yii框架中的event事件机制
2016/03/17 PHP
JQuery对checkbox操作 (循环获取)
2011/05/20 Javascript
jquery append()方法与html()方法的区别及使用介绍
2014/08/01 Javascript
JavaScript实现的encode64加密算法实例分析
2015/04/15 Javascript
JavaScript清空数组元素的两种方法简单比较
2015/07/10 Javascript
javascript使用Promise对象实现异步编程
2016/03/01 Javascript
Angular页面间切换及传值的4种方法
2016/11/04 Javascript
JavaScript队列、优先队列与循环队列
2016/11/14 Javascript
微信小程序 数据交互与渲染实例详解
2017/01/21 Javascript
JS原生轮播图的简单实现(推荐)
2017/07/22 Javascript
ES6学习教程之对象字面量详解
2017/10/09 Javascript
vue中v-model动态生成的实例详解
2017/10/27 Javascript
细说webpack源码之compile流程-rules参数处理技巧(1)
2017/12/26 Javascript
vue滚动插件better-scroll使用详解
2019/10/18 Javascript
JS图片懒加载的优点及实现原理
2020/01/10 Javascript
封装 axios+promise通用请求函数操作
2020/08/11 Javascript
[33:42]LGD vs OG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python设置windows桌面壁纸的实现代码
2013/01/28 Python
Python异常对代码运行性能的影响实例解析
2018/02/08 Python
基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解
2020/06/08 Python
tensorflow 动态获取 BatchSzie 的大小实例
2020/06/30 Python
CHARLES & KEITH澳大利亚官网:新加坡时尚品牌
2019/01/22 全球购物
Fossil美国官网:化石手表、手袋、首饰及配饰
2019/02/17 全球购物
aden + anais英国官网:美国婴儿贴身用品品牌
2019/09/08 全球购物
查环查孕证明
2014/01/10 职场文书
模范教师事迹材料
2014/02/10 职场文书
售后服务经理岗位职责范本
2014/02/22 职场文书
学生会宣传部竞选稿
2015/11/21 职场文书
担保书范文
2019/07/09 职场文书
Java 常见的限流算法详细分析并实现
2022/04/07 Java/Android
Java对文件的读写操作方法
2022/04/29 Java/Android
spring IOC容器的Bean管理XML自动装配过程
2022/05/30 Java/Android