import winreg
infoPath = r"Software\Classes\CLSID";
dataPath = r"Software\PremiumSoft";
def main():
access_registry = winreg.ConnectRegistry(None, winreg.HKEY_CURRENT_USER)
#获取Software\Classes\CLSID路径的信息
access_key = winreg.OpenKey(access_registry, infoPath )
#获取Software\Classes\CLSID下的子文件名
pathInfo = getData(access_key)
#删除oftware\Classes\CLSID路径下的info
deleteInfo(access_registry, pathInfo)
#删除Software\PremiumSoft路径下的Data
deleteData(access_registry)
#删除Software\PremiumSoft路径下的Data
def deleteData(access_registry):
data_key = winreg.OpenKey(access_registry, dataPath +"\\"+'Data')
data_key2 = winreg.OpenKey(access_registry, dataPath)
datalist = []
dateSfolders = 0
dateFfolders = 0
#删除第三层文件夹
while True:
try:
dateSfoldersName = winreg.EnumKey(data_key, dateSfolders)
datalist.append(dateSfoldersName)
dateSfolders += 1
except:
# print(len(datalist))
break
for i in range(len(datalist)):
dataSub_key = winreg.OpenKey(access_registry, dataPath +"\\"+'Data' + "\\" + datalist[i])
#print(dataSub_key)
dateTfolders = 0
while True:
try:
dateTfoldersName = winreg.EnumKey(dataSub_key, dateTfolders)
winreg.DeleteKey(dataSub_key, dateTfoldersName)
dateTfolders = + 1
except:
print("第三层已完毕:"+dataPath +"\\"+'Data' + "\\" + datalist[i]+":")
break
# 删除第二层文件夹
for j in range(len(datalist)):
winreg.DeleteKey(data_key, datalist[j])
# 删除第一层文件夹Data
while True:
try:
dateFfoldersName = winreg.EnumKey(data_key2, dateFfolders)
if dateFfoldersName == 'Data':
winreg.DeleteKey(data_key2,dateFfoldersName)
dateFfolders += 1
except:
break
#删除oftware\Classes\CLSID路径下的info
def deleteInfo(access_registry,pathInfo):
for i in range(len(pathInfo)) :
#print(r"Software\Classes\CLSID" + "\\" + pathInfo[i])
access_key = winreg.OpenKey(access_registry, infoPath + "\\" + pathInfo[i])
n = 0
while True:
try:
x = winreg.EnumKey(access_key, n)
if x == "info":
winreg.DeleteKey(access_key,x)
n += 1
except:
break
#获取Software\Classes\CLSID下的子文件名
def getData(access_key):
n = 0
datalist = []
while True:
try:
x = winreg.EnumKey(access_key, n)
n += 1
datalist.append(x)
except:
break
return datalist
if __name__ == "__main__":
main()
删除Navicat注册表信息
于 2023-03-07 18:55:23 首次发布