windows注册表操作
2021-06-27 07:07
标签:pat 时间 imp eva 方法 settings Owner 修改时间 div windows注册表操作 标签:pat 时间 imp eva 方法 settings Owner 修改时间 div 原文地址:https://www.cnblogs.com/caozhi00/p/10084227.html#!/usr/local/bin/python3
__author__ = ‘曹植‘
import win32api
import win32con
import os
import pywintypes
import time
class GoogleRegedit(object):
"""
谷歌浏览器注册表方法实现
"""
def __init__(self, path):
self.reg_root = win32con.HKEY_CURRENT_USER
# self.reg_path = r"Software\Google\Chrome\PreferenceMACs\Default"+‘\extensions.settings‘
self.reg_path = path
self.reg_flags = win32con.WRITE_OWNER | win32con.KEY_WOW64_64KEY | win32con.KEY_ALL_ACCESS
try:
self.key = win32api.RegOpenKey(self.reg_root, self.reg_path, 0, self.reg_flags)
except pywintypes.error:
self.key = win32api.RegOpenKey(self.reg_root,
r‘Software\Google\Chrome\PreferenceMACs\Default‘, 0,
self.reg_flags)
# self.default_value = win32api.RegQueryValue(self.key, ‘‘) # 该项的默认值,输出为空表示该默认值为设置
def read(self, name):
"""
读取项值名称为name的值
:param name:
:return:
"""
return win32api.RegQueryValueEx(self.key, name)
def get_info(self):
"""
返回项的子项数目、项值数目,以及最后一次修改时间
:return:
"""
return win32api.RegQueryInfoKey(self.key)
def subkey_traversal(self):
"""
子键的遍历
:return:
"""
return win32api.RegEnumKeyEx(self.key)
def traversal(self):
"""
键值对的遍历
:return:
"""
try:
value = []
i = 0
while True:
value.append(win32api.RegEnumValue(self.key, i))
i += 1
except Exception as e:
pass
return value
def create_subkey(self, name):
"""
创建一个子项
:return:
"""
win32api.RegCreateKey(self.key, name)
def delete_subkey(self, name):
"""
删除一个子项
:return:
"""
win32api.RegDeleteKey(self.key, name)
def create(self, k, value):
"""
创建键值
:param k:
:param value:
:return:
"""
key, _ = win32api.RegCreateKeyEx(self.reg_root, self.reg_path, self.reg_flags)
win32api.RegSetValueEx(self.key, k, 0, win32con.REG_SZ, value)
def delete(self, name):
"""
删除键值
:return:
"""
# 删除值(key也有close方法,可以用with结构)
with win32api.RegOpenKeyEx(self.reg_root, self.reg_path, 0, self.reg_flags) as key:
win32api.RegDeleteValue(key, name)
# 删除键(需要获取其父键,通过父键删除子键)
reg_parent, subkey_name = os.path.split(self.reg_path)
with win32api.RegOpenKeyEx(self.reg_root, reg_parent, 0, self.reg_flags) as key:
win32api.RegDeleteKeyEx(key, subkey_name)
def set(self, k, value):
"""
将某个键k的值设置为value
:return:
"""
win32api.RegSetValueEx(self.key, k, 0, win32con.REG_SZ, value)
def set_default_value(self, value):
"""
设置该项key的默认值
:param value:
:return:
"""
win32api.RegSetValue(self.key, ‘‘, win32con.REG_SZ, value)
def close(self):
"""
关闭注册表
:return:
"""
win32api.RegCloseKey(self.key)