提供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注册表值的方法的更多相关文章

  1. python获取文件扩展名的方法(转)

    主要介绍了python获取文件扩展名的方法,涉及Python针对文件路径的相关操作技巧.具体实现方法如下: 1 2 3 4 import os.path def file_extension(path ...

  2. python获取文件扩展名的方法

    主要介绍了python获取文件扩展名的方法,涉及Python针对文件路径的相关操作技巧 import os.path def file_extension(path): ] print file_ex ...

  3. python获取本地ip地址的方法

    #_*_coding:utf8_*_ #以下两种方法可以在ubuntu下或者windows下获得本地的IP地址 import socket # 方法一 localIP = socket.gethost ...

  4. Win10打开照片提示“无效的注册表值”解决方法

    1.点开开始菜单,右键单击,选择“以管理员运行”[键盘win键+R]输入PowerShell. 2.输入Get-AppxPackage *photo* | Remove-AppxPackage后回车. ...

  5. Python入门之获取当前所在目录的方法详解

    #本文给大家讲解的是使用python获取当前所在目录的方法以及相关示例,非常的清晰简单,有需要的小伙伴可以参考下 sys.path 模块搜索路径的字符串列表.由环境变量PYTHONPATH初始化得到. ...

  6. python 获取mac地址zz

    通过python获取当前mac地址的方法如下:(1)通用方法,借助uuid模块def get_mac_address(): import uuid      node = uuid.getnode() ...

  7. SQL读取注册表值

    最近写一个自动检查SQL Serve安全配置的检查脚本,需要查询注册表,下面是使用SQL查询注册表值的方法. ) ) ) ) --For Named instance --SET @Instance ...

  8. python获取字母在字母表对应位置的几种方法及性能对比较

    python获取字母在字母表对应位置的几种方法及性能对比较 某些情况下要求我们查出字母在字母表中的顺序,A = 1,B = 2 , C = 3, 以此类推,比如这道题目 https://project ...

  9. python动态获取对象的属性和方法 (转载)

    首先通过一个例子来看一下本文中可能用到的对象和相关概念. #coding:utf-8 import sys def foo():pass class Cat(object): def __init__ ...

随机推荐

  1. CDO如何盘点算法、推动算法业务增长

    在数字经济时代,算法对企业业务增长至关重要,是企业进行数字化转型.构建竞争优势的关键.IT工程师或数据分析师可能会将算法描述为一组由数据操作形成的规则.而从业务价值方面考虑,算法是一种捕获商业机会.提 ...

  2. 2022,我们继续探索开源 New Style!

  3. Apache DolphinScheduler 2.0.1 来了,备受期待的一键升级、插件化终于实现

    ✎ 编 者 按:好消息!Apache DolphinScheduler 2.0.1 版本正式发布! 本版本中,DolphinScheduler 经历了一场微内核+插件化的架构改进,70% 的代码被重构 ...

  4. 社区之光:我和 Apache DolphinScheduler 的这一年

    背景 没错,本文的主人翁就是那个在多个 DolphinScheduler 用户群超级活跃,"孜孜不倦" 地给用户各种答疑的小伙,如果你在群里问过问题,伯毅多半概率回答过,哈哈,今天 ...

  5. Blazor VS Vue

    Vue--​​两分钟概述 Vue 是一个JavaScript 框架. 在其最简单的模式中,您可以简单地将核心 Vue 脚本包含在您的应用程序中,然后开始构建您的组件. 除此之外,对于更复杂的应用程序, ...

  6. spring boot 中英文官方文档

    中文文档:http://oopsguy.com/documents/springboot-docs/1.5.4/index.html#boot-features 英文官方文档:https://docs ...

  7. 技术管理进阶——技术Leader需要数据思维

    原创不易,求分享.求一键三连 假设我长得很漂亮,拥有众多追求者,但是初出闺房的我对这世界上的男人毫无认知,那么该如何选择呢?这真是一个问题! 妈妈说,愿意为我花钱的男人未必爱我,但不愿意为我花钱的男人 ...

  8. 算法模板:spfa

    #include<iostream> #include<algorithm> #include<cstring> #include<string> #i ...

  9. 记一次用arthas排查jvm中CPU占用过高问题

    记一次使用arthas排查jvm中CPU占用过高问题.这工具屌爆了 碾压我目前使用的全部JVM工具. 安装 小试 curl -O https://arthas.aliyun.com/arthas-bo ...

  10. 安装docker及使用docker安装其他软件(手动挂载数据卷)

    中秋明月,豪门有,贫家也有,极慰人心 Linux安装docker 可以参考官方的安装文档 centos安装docker: https://docs.docker.com/engine/install/ ...