|
|
本帖最后由 whyida 于 2025-12-17 21:38 编辑
删除注册表中 “MData”字符,每打开一次会写一次。
python代码。
- import winreg
- def delete_values_with_mdata(root_key, subkey_path):
- """
- 删除指定路径下所有值名或值数据包含 'MData' 的注册表值
- :param root_key: 根键
- :param subkey_path: 子键路径
- """
- try:
- with winreg.OpenKey(root_key, subkey_path, 0, winreg.KEY_READ | winreg.KEY_WRITE) as key:
- # 获取值数量
- i = 0
- while True:
- try:
- value_name, value_data, _ = winreg.EnumValue(key, i)
- # 检查值名或值数据是否包含 MData
- if "MData" in str(value_name) or "MData" in str(value_data):
- print(f"删除值: {subkey_path}\\{value_name} = {value_data}")
- winreg.DeleteValue(key, value_name)
- else:
- i += 1
- except OSError:
- break # 枚举完毕
- except FileNotFoundError:
- print(f"路径不存在: {subkey_path}")
- except PermissionError:
- print(f"权限不足: {subkey_path}")
- # 示例:删除 HKEY_CURRENT_USER\Software\MyApp 下含 MData 的值
- delete_values_with_mdata(winreg.HKEY_CURRENT_USER, r"Software\MyApp")
复制代码
|
|