上海建设学院网站,建设包银行官方网站,营销型网站的整体规划,晋城市网站建设管理人员首先我们需要安装winreg库
pip install winreg注册表常量
”winreg“总有很多有用的方法#xff0c;基本上就是操作注册表中的键值#xff0c;我们挑几个重要的来说说。首先我们来了解下”winreg“中的各个常量#xff1a;
1.HKEY_ 常量
winreg.HKEY_CLASSES_ROOT #存…首先我们需要安装winreg库
pip install winreg注册表常量
”winreg“总有很多有用的方法基本上就是操作注册表中的键值我们挑几个重要的来说说。首先我们来了解下”winreg“中的各个常量
1.HKEY_ 常量
winreg.HKEY_CLASSES_ROOT #存储应用和shell的信息
winreg.HKEY_CURRENT_USER #当前用户自定义的信息
winreg.HKEY_LOCAL_MACHINE #计算机系统所有的信息
winreg.HKEY_USERS #所有用户信息
winreg.HKEY_PERFORMANCE_DATA #性能数据
winreg.HKEY_CURRENT_CONFIG #本地计算机系统的硬件配置文件
winreg.HKEY_DYN_DATA #windows98后的版本无法使用
2.访问权限
winreg.KEY_ALL_ACCESS #所有权限
winreg.KEY_WRITE #可写
winreg.KEY_READ #可读
winreg.KEY_EXECUTE #可执行相当于KEY_READ
winreg.KEY_QUERY_VALUE #查询注册表键值
winreg.KEY_SET_VALUE #创建、删除或设置一组注册表值
winreg.KEY_CREATE_SUB_KEY #创建一个注册表子项的注册表键
winreg.KEY_ENUMERATE_SUB_KEYS #枚举注册表子项所需的注册表键
winreg.KEY_NOTIFY #修改注册表键时的提示
winreg.KEY_CREATE_LINK #创建一个链接预留给系统用
3.64位的具体应用
winreg.KEY_WOW64_64KEY #在64位Windows应用程序应该运行在64位注册表视图
winreg.KEY_WOW64_32KEY #在64位Windows应用程序应该运行在32位注册表视图
4.值类型
winreg.REG_BINARY #任何形式的二进制数据
winreg.REG_DWORD #32位的数
winreg.REG_DWORD_LITTLE_ENDIAN #32位的数字在低位优先的格式相当于REG_DWORD
winreg.REG_DWORD_BIG_ENDIAN #32位的数字在高位优先的格式
winreg.REG_EXPAND_SZ #以null结尾的字符串包含环境变量的引用(% %)
winreg.REG_LINK #Unicode符号链接
winreg.REG_MULTI_SZ #一个以null结尾的字符串序列,由两个空字符结束
winreg.REG_NONE #没有定义的值类型
winreg.REG_QWORD #64位的数
winreg.REG_QWORD_LITTLE_ENDIAN #在低位优先一个64位的数字格式相当于REG_QWORD
winreg.REG_RESOURCE_LIST #设备驱动器资源列表
winreg.REG_FULL_RESOURCE_DESCRIPTOR #硬件设置
winreg.REG_RESOURCE_REQUIREMENTS_LIST #硬件资源列表
winreg.REG_SZ #一个以null结尾的字符串使用Python读取注册表一个目录下的所有键值对
import winregdef read_registry_subkeys(hive, subkey):try:# 打开注册表项key winreg.OpenKey(hive, subkey, 0, winreg.KEY_READ | winreg.KEY_WOW64_64KEY)# 枚举子项subkeys []index 0while True:try:subkey_name winreg.EnumKey(key, index)subkeys.append(subkey_name)index 1except OSError:break# 关闭注册表项winreg.CloseKey(key)return subkeysexcept FileNotFoundError:print(fRegistry key not found: {subkey})except Exception as e:print(fError reading registry subkeys: {e})def read_registry_values(hive, subkey):try:# 打开注册表项key winreg.OpenKey(hive, subkey, 0, winreg.KEY_READ | winreg.KEY_WOW64_64KEY)# 枚举键值对values {}index 0while True:try:value_name, value_data, value_type winreg.EnumValue(key, index)values[value_name] (value_data, value_type)index 1except OSError:break# 关闭注册表项winreg.CloseKey(key)return valuesexcept FileNotFoundError:print(fRegistry key not found: {subkey})except Exception as e:print(fError reading registry values: {e})# 示例
hive winreg.HKEY_LOCAL_MACHINE
subkey rSOFTWARE\Microsoft\Windows\CurrentVersion\Uninstallsubkeys read_registry_subkeys(hive, subkey)
print(fSubkeys under {subkey}: {subkeys})for subkey_name in subkeys:full_subkey f{subkey}\\{subkey_name}values read_registry_values(hive, full_subkey)print(fValues under {full_subkey}: {values})设置已存在注册表项的键值对
import winregdef set_registry_value(hive, subkey, name, value, value_type):try:# 打开注册表项key winreg.OpenKey(hive, subkey, 0, winreg.KEY_SET_VALUE | winreg.KEY_WOW64_64KEY)# 设置键值对winreg.SetValueEx(key, name, 0, value_type, value)# 关闭注册表项winreg.CloseKey(key)print(fRegistry value {name} set successfully.)except FileNotFoundError:print(fRegistry key not found: {subkey})except Exception as e:print(fError setting registry value: {e})# # 示例
hive winreg.HKEY_LOCAL_MACHINE
subkey rSOFTWARE\CET
name PecCore #ExampleValue
value NewValue
value_type winreg.REG_SZset_registry_value(hive, subkey, name, value, value_type)创建注册表项以及键值对
import winregdef Edit_Reg(key_path,value_name,value_data):# 创建或打开注册表项key winreg.CreateKey(winreg.HKEY_LOCAL_MACHINE, key_path)winreg.SetValueEx(key, value_name, 0, winreg.REG_SZ, value_data)# 关闭注册表项winreg.CloseKey(key)key_path rSoftware\CET\PecCore # 替换为你的注册表路径
# 设置或修改键值
value_name Version
value_data 1.0
Edit_Reg(key_path,value_name,value_data)删除键值对
import winregdef delete_registry_value(hive, subkey, name):try:# 打开注册表项key winreg.CreateKey(hive, subkey, 0, winreg.KEY_SET_VALUE | winreg.KEY_WOW64_64KEY)# 检查值是否存在try:winreg.QueryValueEx(key, name)except FileNotFoundError:print(fRegistry value {name} not found.)return# 删除键值对winreg.DeleteValue(key, name)# 关闭注册表项winreg.CloseKey(key)print(fRegistry value {name} deleted successfully.)except FileNotFoundError:print(fRegistry key not found: {subkey})except Exception as e:print(fError deleting registry value: {e})# 示例
hive winreg.HKEY_LOCAL_MACHINE
subkey rSOFTWARE\CET\PecStar_4.0
name Version删除目录
import winregdef delete_registry_value(hive, subkey):try:# 打开注册表项key winreg.OpenKey(hive, subkey, 0, winreg.KEY_SET_VALUE | winreg.KEY_WOW64_64KEY)# 删除注册表项winreg.DeleteKey(hive, subkey)# 关闭注册表项winreg.CloseKey(key)print(fRegistry value deleted successfully.)except FileNotFoundError:print(fRegistry key not found: {subkey})except Exception as e:print(fError deleting registry value: {e})# 示例
hive winreg.HKEY_LOCAL_MACHINE
subkey rSOFTWARE\CET\PecStar_4.0
delete_registry_value(hive, subkey)