python访问注册表_读取注册表的Python代码

如果“Uninstall”中有超过1024个子键怎么办?Use _winreg.QueryInfoKey(key)

Python2:import errno, os, _winreg

proc_arch = os.environ['PROCESSOR_ARCHITECTURE'].lower()

proc_arch64 = os.environ['PROCESSOR_ARCHITEW6432'].lower()

if proc_arch == 'x86' and not proc_arch64:

arch_keys = {0}

elif proc_arch == 'x86' or proc_arch == 'amd64':

arch_keys = {_winreg.KEY_WOW64_32KEY, _winreg.KEY_WOW64_64KEY}

else:

raise Exception("Unhandled arch: %s" % proc_arch)

for arch_key in arch_keys:

key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, r"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", 0, _winreg.KEY_READ | arch_key)

for i in xrange(0, _winreg.QueryInfoKey(key)[0]):

skey_name = _winreg.EnumKey(key, i)

skey = _winreg.OpenKey(key, skey_name)

try:

print _winreg.QueryValueEx(skey, 'DisplayName')[0]

except OSError as e:

if e.errno == errno.ENOENT:

# DisplayName doesn't exist in this skey

pass

finally:

skey.Close()

Python3:import errno, os, winreg

proc_arch = os.environ['PROCESSOR_ARCHITECTURE'].lower()

proc_arch64 = os.environ['PROCESSOR_ARCHITEW6432'].lower()

if proc_arch == 'x86' and not proc_arch64:

arch_keys = {0}

elif proc_arch == 'x86' or proc_arch == 'amd64':

arch_keys = {winreg.KEY_WOW64_32KEY, winreg.KEY_WOW64_64KEY}

else:

raise Exception("Unhandled arch: %s" % proc_arch)

for arch_key in arch_keys:

key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, r"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", 0, winreg.KEY_READ | arch_key)

for i in range(0, winreg.QueryInfoKey(key)[0]):

skey_name = winreg.EnumKey(key, i)

skey = winreg.OpenKey(key, skey_name)

try:

print(winreg.QueryValueEx(skey, 'DisplayName')[0])

except OSError as e:

if e.errno == errno.ENOENT:

# DisplayName doesn't exist in this skey

pass

finally:

skey.Close()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/396458.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ios 动画 隐藏tabbar_UITabBarViewController 的底部 tabBar 隐藏

iOS pushViewController 时候隐藏 TabBar 的可以用interfaceUIViewController (UINavigationControllerItem)property(nonatomic,readonly,strong)UINavigationItem*navigationItem;// Created on-demand so that a view controller may customize its navigation appearance.p…

JS进阶之---函数,立即执行函数

一、函数 函数声明、函数表达式、匿名函数 函数声明:使用function关键字声明一个函数,再指定一个函数名,叫函数声明。function name () { … } 函数表达式:使用function关键字声明一个函数,但未给函数命名,…

主线程中有多个handler的情况

https://www.cnblogs.com/transmuse/archive/2011/05/16/2048073.html转载于:https://www.cnblogs.com/genggeng/p/9806415.html

RandomForestClassifier(随机森林检测每个特征的重要性及每个样例属于哪个类的概率)...

#In the next recipe, well look at how to tune the random forest classifier. #Lets start by importing datasets:from sklearn import datasets X, y datasets.make_classification(1000)# X(1000,20) #y(1000) 取值范围【0,1】from sklearn.ensemble import RandomFores…

单因素方差分析_基于R语言开展方差分析(一)——单因素方差分析

基本原理方差分析(Analysis of variance, ANOVA)是用于两个或两个以上样本均数比较的方法,还可以分析两个或多个研究因素的交互交互作用以及回归方程的线性假设检验等。其基本思想是将全部观察值间的变异——总变异按设计和需要分解成两个或多个组成部分&#xff0c…

个税10% 人群_人群管理如何使我们的搜索质量提高27%

个税10% 人群by Thanesh Sunthar由塔内什桑塔尔(Thanesh Sunthar) 人群管理如何使我们的搜索质量提高27% (How Crowd Curation Improved Our Search Quality by 27%) The bigger your platform gets, the more vital search becomes. And if you run a content-hea…

mysql增数据语句_Mysql 数据增删改查语句

插入数据 insert#1. 插入完整数据(顺序插入)#语法一:insert into 表名(字段1,字段2,字段3…字段n) values (值1,值2,值3…值n);#语法二:insert into 表名 values (值1,值2,值3…值n);#2. 指定字段插入数据#语法:insert into 表名(字段1,字段2…

Python+Flask.0010.FLASK即插视图之自定义视图类及修饰器

2019独角兽企业重金招聘Python工程师标准>>> 即插视图; 说明: FLASK的视图灵感来自于DJANGO的基于类而非基于函数的通用视图,主要目的是为了解决多个视图函数之间已经实现的部分,通过类继承的方式继承到其它视图,总之为了一点,就是少写代码,然后通过add_url_rule让我…

InputStream和Reader,FileInputStream和 FileReader的区别

一、InputStream和Reader的区别 InputStream和Reader都可以用来读数据(从文件中读取数据或从Socket中读取数据),最主要的区别如下: InputStream用来读取二进制数(字节流),而 Reader用来读取文本数据,即 Unicode字符。那么二进制数与文本数据有…

NGUI之输入文本框的使用

ToolBar中的两个红圈 另,代码如下:只需要定义一个变量即可,然后将控件drag到那里,真的是灰常方便呀 还有一个就是保存了(OK的响应),可以简单地理解为存档或读档 转载于:https://www.cnblogs.com/YTYMblog/p…

ae制作数据可视化_我如何精心制作真正可怕的数据可视化

ae制作数据可视化by Krist Wongsuphasawat克里斯特旺苏帕萨瓦(Krist Wongsuphasawat) 我如何精心制作真正可怕的数据可视化 (How I carefully crafted a truly terrible data visualization) Yes, you read that right. I am going to explain how I put together a really ba…

tensorrt轻松部署高性能dnn推理_实战教程:TensorRT中递归神经网络的介绍(中文字幕)...

NVIDIA TensorRT是一个高性能的深度学习推理优化器和运行时,它提供低延迟和高吞吐量。TensorRT可以从每个深度学习框架导入经过训练的模型,从而轻松地创建可以集成到大型应用程序和服务中的高效推理引擎。这个视频的五个关键点:1.TensorRT支持RNNv2, Mat…

w怎么接显示 树莓派zero_纯干货!一根线玩转树莓派ZeroW(图文教程,亲测有效)...

#一、写在前面本文旨在介绍如何用最少的外设(成本)完成树莓派Zero W最基础最重要的功能。注意:本文原始发表时官方镜像版本是2017-04-10的,在2019年5月10日有网友提出本方案已经不完全适用最新的镜像了,所以如果只是想按照本文所提出的步骤一…

十进制小数转换二进制的问题

2019独角兽企业重金招聘Python工程师标准>>> 整数和小数分别转换。 整数除以2,商继续除以2,得到0为止,将余数逆序排列。 22 / 2 11 余0 11/2 5 余 1 5 /2 2 余 1 2 /2 1 余 0 1 /2 0 余 1 所以22的二进制…

java操作mongodb(连接池)(转)

原文链接: java操作mongodb(连接池) Mongo的实例其实就是一个数据库连接池,这个连接池里默认有10个链接。我们没有必要重新实现这个链接池,但是我们可以更改这个连接池的配置。因为Mongo的实例就是一个连接池&#xff…

机器学习 一年入门_我作为自我入门程序员的一年回顾

机器学习 一年入门by Alin Rauta通过Alin Rauta 我作为自我入门程序员的一年回顾 (My Year as a Self-starter Programmer in Review) This was the most crucial year for my personal development ever. It was hard. Really hard. That’s why for me, the key word of 201…

声卡突然听不到监听_音乐人/键盘手伴侣物问题之:专业监听音箱的音质必须用独立声卡...

近日,不少朋友在后台留言,询问专业监听音箱连电脑听音乐要不要接个声卡!本期我们针对此问题,跟大家分享一些心得与经验。先回答问题,当然要!通常我们电脑上的音频输出口是这样的:而专业监听音箱…

helm3安装mysql_Helm3(kubernetes包管理工具)安装使用踩坑指南

image.png从结构中我们看到有不同级别的文件夹,以及一些yaml文件。charts: 用于存放其他依赖和关联的chart。例如应用依赖数据库的chart。Chart.yaml:存储一些元数据,例如chart的信息,描述等等templates文件夹&#xf…

矩阵快速幂及斐波那契数列模板

本篇博客先给出矩阵快速幂以及利用矩阵快速幂求斐波那契数列的模板&#xff0c;讲解待更新…… const int N10; int tmp[N][N]; void multi(int a[][N],int b[][N],int n) {memset(tmp,0,sizeof tmp);for(int i0;i<n;i)for(int j0;j<n;j)for(int k0;k<n;k)tmp[i][j]a…

Redis-3.2主从复制与集群搭建 推荐

Redis-3.2主从复制与集群搭建 一、Redis 主从搭建 1.下载并解压 yum install -y gcc gcc-c pcre zlib pcre-devel tcl wget http://download.redis.io/releases/redis-3.2.4.tar.gz tar -zxvf redis-3.2.4.tar.gz cd redis-3.2.4 make cd src && make test &&am…