I want to be able to delete all the subkeys under a key but I keep getting the error
[WinError 2] The system cannot find the file specified
Here is the code I used from another answer (python: how to delete registry key (and subkeys) from HKLM (getting error 5)1) :
import winreg
def delete_sub_key(key0, current_key, arch_key=0):
open_key = winreg.OpenKey(key0, current_key, 0, winreg.KEY_ALL_ACCESS)
info_key = winreg.QueryInfoKey(open_key)
for x in range(0, info_key[0]):
# to delete the key and all sub_keys
sub_key = winreg.EnumKey(open_key, 0)
try:
winreg.DeleteKey(open_key, sub_key)
print("Removed %s\\%s " % (current_key, sub_key))
except OSError:
delete_sub_key(key0, "\\".join([current_key,sub_key]), arch_key)
# No extra delete here since each call
# to delete_sub_key will try to delete itself when its empty.
winreg.DeleteKey(open_key, "")
open_key.Close()
print("Removed %s" % current_key)
return
arch_keys = [winreg.KEY_WOW64_32KEY, winreg.KEY_WOW64_64KEY]
root = winreg.HKEY_LOCAL_MACHINE
# Key to delete
keys = 'Computer\\HKEY_LOCAL_MACHINE\\SOFTWARE\\BlueStacks'
for arch_key in arch_keys:
try:
delete_sub_key(root, keys, arch_key)
except OSError as e:
print(e)