python获取本机的安装所有应用( Windows)
Windows获取本机的安装所有应用
采用操作注册表的方式,理论上其他可通过操作注册表方式的动作均可
import winreg
def get_window_software(hive, flag):
"""
get windows all installed software
"""
# winreg.ConnectRegistry(None, hive): 连接注册表; hive:windows下的HKEY_常量
aReg = winreg.ConnectRegistry(None, hive)
# winreg.OpenKey(reg, regedit_path, 0, reg_type):操作注册表(读取,写入等)
# reg: 连接的注册表; regedit_path:注册表的路径; reg_type:需要对注册表的操作类型
aKey = winreg.OpenKey(aReg, r"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall",
0, winreg.KEY_READ | flag)
# winreg.QueryInfoKey(key):获取注册表的相关信息; 返回一个元组:(此注册表的子key数量, 0, 自从1600.1.1上次修改时间(纳秒))key:打开的注册表
count_subkey = winreg.QueryInfoKey(aKey)[0]
print(f"count_subkey:{count_subkey}")
software_list = []
for i in range(count_subkey):
software = {}
try:
asubkey_name = winreg.EnumKey(aKey, i)
asubkey = winreg.OpenKey(aKey, asubkey_name)
# 根据键名查询对应值
software['name'] = winreg.QueryValueEx(asubkey, "DisplayName")[0]
try:
software['version'] = winreg.QueryValueEx(asubkey, "DisplayVersion")[0]
except EnvironmentError:
software['version'] = 'undefined'
try:
software['publisher'] = winreg.QueryValueEx(asubkey, "Publisher")[0]
except EnvironmentError:
software['publisher'] = 'undefined'
software_list.append(software)
except EnvironmentError:
continue
return software_list
if __name__ == "__main__":
software_list = get_window_software(winreg.HKEY_LOCAL_MACHINE, winreg.KEY_WOW64_32KEY) + get_window_software(winreg.HKEY_LOCAL_MACHINE, winreg.KEY_WOW64_64KEY) + get_window_software(winreg.HKEY_CURRENT_USER, 0)
print(software_list)
for software in software_list:
print('Name=%s, Version=%s, Publisher=%s' % (software['name'], software['version'], software['publisher']))
print('Number of installed apps: %s' % len(software_list))
python获取本机的安装所有应用( Windows)的更多相关文章
- python 获取本机的 IP 地址,windows,linux均可
#encoding=utf-8 #参考csdn某篇文章 import socket def get_host_ip(): """ 查询本机ip地址 :return: ip ...
- 在.bashrc中,使用python获取本机IP地址(现在只支持wlan)
其实最好的办法是写个单独的脚本去查找IP,但是如果实在不愿意单写一个脚本文件,也可以直接将代码嵌入.bashrc中 在~/.bashrc下加入下面这行代码即可使用python获取本机的wlan的IP地 ...
- python 获取本机IP的三种方式
python获取本机IP的方式 第一种: #!/usr/bin/python import socket import fcntl import struct def get_ip_address(i ...
- Python - 获取本机IP地址、Mac地址
Python - 获取本机IP地址.Mac地址 在python中获取ip地址和在php中有很大不同,在php中往往比较简单.那再python中怎么做呢? 直接看代码: # Python - 获取本机I ...
- python获取本机IP、mac地址、计算机名
在python中获取ip地址和在php中有很大不同,在php中往往比较简单.那再python中怎么做呢? 我们先来看一下python 获得本机MAC地址: 1 2 3 4 import uuid de ...
- python 获取本机 IP
原文 通过 UDP 获取本机 IP,目前见过最优雅的方法 这个方法是目前见过最优雅获取本机服务器的IP方法了.没有任何的依赖,也没有去猜测机器上的网络设备信息. 而且是利用 UDP 协议来实现的,生成 ...
- Revit二次开发之获取本机已安装的Revit版本与路径
在revit安装目录下找到 RevitAddInUtility.dll 在项目中引用 使用以下方法 using Autodesk.RevitAddIns; /// <summary> // ...
- Python获取本机的mac,ip,name
Python获取mac 获取计算机名字和ip(内网ip) 指定网卡ip
- python 获取本机的IP
python 获取本地的IP import socket import fcntl import struct def get_ip_address(ifname): s = socket.socke ...
随机推荐
- Django学习——分页器基本使用、分页器终极用法、forms组件之校验字段、forms组件之渲染标签、forms组件全局钩子,局部钩子
内容 1 分页器基本使用 2 分页器终极用法 3 forms组件之校验字段 1 前端 <!DOCTYPE html> <html lang="en"> &l ...
- 【mq】从零开始实现 mq-13-注册鉴权 auth
前景回顾 [mq]从零开始实现 mq-01-生产者.消费者启动 [mq]从零开始实现 mq-02-如何实现生产者调用消费者? [mq]从零开始实现 mq-03-引入 broker 中间人 [mq]从零 ...
- 一些GIT操作的技巧
一.git stash 我们有时会遇到这样的情况,正在分支a上开发一半,然后分支b上发现Bug,需要马上处理.这时候分支a上的修改怎么办呢,git add 是不行的,有的git客户端版本会提示还有ad ...
- SpringCloud基础概念学习笔记(Eureka、Ribbon、Feign、Zuul)
SpringCloud基础概念学习笔记(Eureka.Ribbon.Feign.Zuul) SpringCloud入门 参考: https://springcloud.cc/spring-cloud- ...
- python读取csv、excel、mysql内容
前提:导入扩展包 import pandas as pd import pymysql ①读取csv文件 fpath='/test.csv'ratings=pd.read_csv(fpath)prin ...
- 目标检测复习之Anchor Free系列
目标检测之Anchor Free系列 CenterNet(Object as point) 见之前的过的博客 CenterNet笔记 YOLOX 见之前目标检测复习之YOLO系列总结 YOLOX笔记 ...
- Python 微博搜索爬虫
微博搜索爬虫 网页分析 由于网页端反爬虫机制比较完善所以才去移动端进行爬虫. url地址:https://m.weibo.cn/ 搜索框,输入关键词进行搜索 对网页进行抓包,找到相关数据 查看数据是否 ...
- vue面试总结-2022
1.vue生命周期及各周期得特点 beforCreate 特点: 初始化实例,不能使用data和methods.ref 示例 beforeCreate: function () { console.g ...
- 用STM32玩L298N(正反转、调速)
目录 用STM32玩L298N(正反转.调速) 控制直流电机正反转 使用PWM调速 用STM32玩L298N(正反转.调速) 开发板:STM32F103ZET6(正点原子F103核心板)/STM32F ...
- Nastran的应变方向
问题 近日使用Nastran做一个算例,在计算频响时发现:位移场是连续的,而应变场不连续.以某一频率处应变场为例,其上表面X.Y方向应变场分布如下图.此处关闭了云图的插值,所显示的为单元的应变,因此云 ...