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生成随机验证码(中文验证码)示例
Apr 03 Python
将图片文件嵌入到wxpython代码中的实现方法
Aug 11 Python
python实现简单socket程序在两台电脑之间传输消息的方法
Mar 13 Python
用Python代码来绘制彭罗斯点阵的教程
Apr 03 Python
Python中__name__的使用实例
Apr 14 Python
python执行等待程序直到第二天零点的方法
Apr 23 Python
pip安装py_zipkin时提示的SSL问题对应
Dec 29 Python
Python实现插入排序和选择排序的方法
May 12 Python
python写入文件自动换行问题的方法
Jul 05 Python
如何基于python3和Vue实现AES数据加密
Mar 27 Python
Python批量安装卸载1000个apk的方法
Apr 10 Python
python中uuid模块实例浅析
Dec 29 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电台频率大全 - 15 山东省
2020/03/11 无线电
php从右向左/从左向右截取字符串的实现方法
2011/11/28 PHP
php中防止恶意刷新页面的代码小结
2012/10/31 PHP
php中的路径问题与set_include_path使用介绍
2014/02/11 PHP
php按单词截取字符串的方法
2015/04/07 PHP
composer.lock文件的作用
2016/02/03 PHP
扩展jQuery 键盘事件的几个基本方法
2009/10/30 Javascript
jQuery Mobile页面跳转后未加载外部JS原因分析及解决
2013/03/18 Javascript
jquery中focus()函数实现当对象获得焦点后自动把光标移到内容最后
2013/09/29 Javascript
JS实现模仿微博发布效果实例代码
2013/12/16 Javascript
使用简洁的jQuery方法实现隔行换色功能
2014/01/02 Javascript
js制作简易年历完整实例
2015/01/28 Javascript
js实现百度联盟中一款不错的图片切换效果完整实例
2015/03/04 Javascript
jquery获取下拉框中的循环值
2017/02/08 Javascript
深入浅析Vue中的Prop
2018/06/10 Javascript
vue集成百度UEditor富文本编辑器使用教程
2018/09/21 Javascript
JS中通过url动态获取图片大小的方法小结(两种方法)
2018/10/31 Javascript
详解JavaScript中的函数、对象
2019/04/01 Javascript
es6中比较有用的7个技巧小结
2019/07/12 Javascript
vue插槽slot的简单理解与用法实例分析
2020/03/14 Javascript
JavaScript Blob对象原理及用法详解
2020/10/14 Javascript
javascript实现点击小图显示大图
2020/11/29 Javascript
使用Python解析JSON数据的基本方法
2015/10/15 Python
python3 实现的人人影视网站自动签到
2016/06/19 Python
python打包压缩、读取指定目录下的指定类型文件
2018/04/12 Python
对python中的控制条件、循环和跳出详解
2019/06/24 Python
Python socket处理client连接过程解析
2020/03/18 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
2020/06/24 Python
西班牙电子产品购物网站:Electronicamente
2018/07/26 全球购物
Linux中如何用命令创建目录
2016/12/02 面试题
趣味比赛活动方案
2014/02/15 职场文书
给老婆大人的检讨书
2014/02/24 职场文书
安全生产宣传标语
2014/06/06 职场文书
专科生就业求职信
2014/06/22 职场文书
2015最新婚礼司仪主持词
2015/06/30 职场文书
2019感恩宣传标语!
2019/07/05 职场文书