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搭建Django应用程序步骤及版本冲突问题解决
Nov 19 Python
Python ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍
Jun 10 Python
Python OS模块常用函数说明
May 23 Python
Python解析命令行读取参数--argparse模块使用方法
Jan 23 Python
Python SQLite3简介
Feb 22 Python
python实现点对点聊天程序
Jul 28 Python
django之使用celery-把耗时程序放到celery里面执行的方法
Jul 12 Python
PyTorch的Optimizer训练工具的实现
Aug 18 Python
详解python中各种文件打开模式
Jan 19 Python
深入理解Tensorflow中的masking和padding
Feb 24 Python
Python模块相关知识点小结
Mar 09 Python
Python爬虫设置ip代理过程解析
Jul 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
全国FM电台频率大全 - 26 西藏自治区
2020/03/11 无线电
如何使用PHP往windows中添加用户
2006/12/06 PHP
PHP中通过语义URL防止网站被攻击的方法分享
2011/09/08 PHP
php判断数组中是否存在指定键(key)的方法
2015/03/17 PHP
wordpress安装过程中遇到中文乱码的处理方法
2015/04/21 PHP
ThinkPHP实现生成和校验验证码功能
2017/04/28 PHP
Laravel框架验证码类用法实例分析
2019/09/11 PHP
Yii 框架控制器创建使用及控制器响应操作示例
2019/10/14 PHP
写出更好的JavaScript之undefined篇(上)
2009/11/22 Javascript
JS获得浏览器版本和操作系统版本的例子
2014/05/13 Javascript
node.js中的fs.closeSync方法使用说明
2014/12/17 Javascript
jQuery选择器用法实例详解
2015/12/17 Javascript
Javascript中indexOf()和lastIndexOf应用方法实例
2016/08/24 Javascript
关于jquery中动态增加select,事件无效的快速解决方法
2016/08/29 Javascript
react router 4.0以上的路由应用详解
2017/09/21 Javascript
react-native fetch的具体使用方法
2017/11/01 Javascript
微信小程序云开发之数据库操作
2019/05/18 Javascript
JS addEventListener()和attachEvent()方法实现注册事件
2021/01/11 Javascript
python打开网页和暂停实例
2014/09/30 Python
python面向对象入门教程之从代码复用开始(一)
2018/12/11 Python
Django xadmin开启搜索功能的实现
2019/11/15 Python
HTML5之web workers_动力节点Java学院整理
2017/07/17 HTML / CSS
使用数据结构给女朋友写个Html5走迷宫游戏
2019/11/26 HTML / CSS
奥地利网上书店:Weltbild
2017/07/14 全球购物
俄罗斯连接商品和买家的在线平台:goods.ru
2020/11/30 全球购物
super关键字的用法
2012/04/10 面试题
学院书画协会部门职责
2013/11/28 职场文书
逃课上网检讨书
2014/02/20 职场文书
《神奇的克隆》教学反思
2014/04/10 职场文书
2014年母亲节演讲稿范文
2014/05/07 职场文书
老干部工作先进集体事迹材料
2014/05/21 职场文书
幼儿园师德师风学习材料
2014/05/29 职场文书
2014年社区党建工作汇报材料
2014/11/02 职场文书
搭讪开场白台词大全
2015/05/28 职场文书
六一儿童节新闻稿
2015/07/17 职场文书
活动简报范文
2015/07/22 职场文书