使用python获取window注册表值的方法
提供regfullpath的方法,可以自行封装个regpath的函数
import logging
import pywintypes
import win32api
import win32con
def getValue(strKeyPath, intAccessMask, strValueName, default=None): if strKeyPath[0] == '\\':
strKeyPath = strKeyPath[1:]
strRoot, strKey = strKeyPath.split('\\', 1)
if strRoot not in g_dicKeyRoot:
raise KeyError(strRoot)
intRoot = g_dicKeyRoot[strRoot]
if intAccessMask == None:
intAccessMask = win32con.KEY_QUERY_VALUE | win32con.KEY_ENUMERATE_SUB_KEYS | win32con.KEY_NOTIFY
h = win32api.RegOpenKeyEx(intRoot, strKey, 0, intAccessMask)
try:
value, vType = win32api.RegQueryValueEx(h, strValueName)
except pywintypes.error as e:
if str(e.args[0]) == '2': # value name doesn't exist
if strValueName == '':
return None, win32con.REG_NONE
if default != None:
return default, None
raise
return value, vType def actGetRegKey(strRegKeyPath, strKeyName):
'''
@param strRegKeyPath: Specify registry key path. Ex. r"HKEY_LOCAL_MACHINE\SOFTWARE\test123"
@param strKeyName: Specify registry key name. Ex. "VirusCount"
@return: strKeyValue[0] -> key value
@example: actGetRegKey(r"HKEY_LOCAL_MACHINE\SOFTWARE\test123","VirusCount")
'''
try:
intAccessMask = win32con.KEY_QUERY_VALUE | win32con.KEY_ENUMERATE_SUB_KEYS | win32con.KEY_NOTIFY
strKeyValue = getValue(strRegKeyPath, intAccessMask, strKeyName)
logging.debug(
'GetRegKey success, path %s, keyName %s , keyValue %s' % (strRegKeyPath, strKeyName, strKeyValue))
return strKeyValue[0]
except pywintypes.error as e:
if 'Access is denied' in str(e):
logging.info(
'Reading regkey %s %s access is denied, change way to KEY_READ' % (strRegKeyPath, strKeyName))
strKeyValue = getValue(strRegKeyPath, win32con.KEY_READ, strKeyName)
logging.debug(
'GetRegKey success, path %s, keyName %s , keyValue %s' % (strRegKeyPath, strKeyName, strKeyValue))
return strKeyValue[0] def GetRegistryValuebyFullPath(fullregpath, regkeyname):
try:
logging.info("full registry path: %s" % fullregpath)
registryValue = actGetRegKey(fullregpath, regkeyname)
logging.info("registryValue: %s" % registryValue)
return registryValue
except pywintypes.error as e:
logging.error('GetRegistryValue Error! %s' % str(e))
使用python获取window注册表值的方法的更多相关文章
- python获取文件扩展名的方法(转)
主要介绍了python获取文件扩展名的方法,涉及Python针对文件路径的相关操作技巧.具体实现方法如下: 1 2 3 4 import os.path def file_extension(path ...
- python获取文件扩展名的方法
主要介绍了python获取文件扩展名的方法,涉及Python针对文件路径的相关操作技巧 import os.path def file_extension(path): ] print file_ex ...
- python获取本地ip地址的方法
#_*_coding:utf8_*_ #以下两种方法可以在ubuntu下或者windows下获得本地的IP地址 import socket # 方法一 localIP = socket.gethost ...
- Win10打开照片提示“无效的注册表值”解决方法
1.点开开始菜单,右键单击,选择“以管理员运行”[键盘win键+R]输入PowerShell. 2.输入Get-AppxPackage *photo* | Remove-AppxPackage后回车. ...
- Python入门之获取当前所在目录的方法详解
#本文给大家讲解的是使用python获取当前所在目录的方法以及相关示例,非常的清晰简单,有需要的小伙伴可以参考下 sys.path 模块搜索路径的字符串列表.由环境变量PYTHONPATH初始化得到. ...
- python 获取mac地址zz
通过python获取当前mac地址的方法如下:(1)通用方法,借助uuid模块def get_mac_address(): import uuid node = uuid.getnode() ...
- SQL读取注册表值
最近写一个自动检查SQL Serve安全配置的检查脚本,需要查询注册表,下面是使用SQL查询注册表值的方法. ) ) ) ) --For Named instance --SET @Instance ...
- python获取字母在字母表对应位置的几种方法及性能对比较
python获取字母在字母表对应位置的几种方法及性能对比较 某些情况下要求我们查出字母在字母表中的顺序,A = 1,B = 2 , C = 3, 以此类推,比如这道题目 https://project ...
- python动态获取对象的属性和方法 (转载)
首先通过一个例子来看一下本文中可能用到的对象和相关概念. #coding:utf-8 import sys def foo():pass class Cat(object): def __init__ ...
随机推荐
- MultiSpehere类定义
再等等,把这个定义完了,就到了我们展示代码环节了. 这个类是多个球体的碰撞检测的,其实就是单个球体的改装版本,基本一摸一样的. 类定义: #pragma once #ifndef __MULTISPH ...
- cmake错误的解决
安装Mysql时出现:CMake Error: Error executing cmake:: LoadCache(). Aborting. 对比:/usr/bin/cmake 和 /usr/loca ...
- 论文翻译:2021_A New Real-Time Noise Suppression Algorithm for Far-Field Speech Communication Based on Recurrent Neural Network
论文地址:一种新的基于循环神经网络的远场语音通信实时噪声抑制算法 引用格式:Chen B, Zhou Y, Ma Y, et al. A New Real-Time Noise Suppression ...
- CF593D Happy Tree Party(不用树剖)
题面 题解 我们发现,对于除法有效的xi最小为2,yi最多除log次就会变成0,所以我们可以每次找路径上下一个>=2的xi,暴力除,当发现y=0时就停止 于是我们维护每个点向上走一直走到根最近的 ...
- PHP实现服务器文件预览
PHP实现服务器里面的所有文件进行预览跟手机文件夹一样 服务器创建一个index.php文件 点我查看 <?php // errors ini_set('display_errors', 1); ...
- const修饰符总结
1.什么是const? const就是constant的缩写,意思是"恒定不变的",它是定义只读变量的关键字,或者说const是定义常变量的关键字,常类型的变量或对象的值是不能被更 ...
- KingbaseES V8R6 锁等待检测
背景 对于多数数据库,dba技能之一就是查找锁.锁的存在有效合理的在多并发场景下保证业务有序进行.下面我们看一下KingbaseESV8R6中查找阻塞的方法. 1.找到"被阻塞者" ...
- 学习ASP.NET Core Blazor编程系列二——第一个Blazor应用程序(下)
学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应用程序(上) 学习ASP.NET Core Blazor编程系 ...
- [机器学习]-分类问题常用评价指标、混淆矩阵及ROC曲线绘制方法
分类问题 分类问题是人工智能领域中最常见的一类问题之一,掌握合适的评价指标,对模型进行恰当的评价,是至关重要的. 同样地,分割问题是像素级别的分类,除了mAcc.mIoU之外,也可以采用分类问题的一些 ...
- [开源福利] FreeRedis 历时两年正式发布 v1.0 [C#.NET Redis Client]
最近很多 .net QQ 群无故被封停,特别是 wpf 群几乎全军覆没.依乐祝的 .net6交流群,晓晨的 .net跨平台交流群,导致很多码友流离失所无家可归,借此机会使用一次召唤术,有需要的请加群: ...