Я позаимствовал скрипт python для борьбы с проблемой ограничения наложения значков оболочки. Я изменил соответствующую часть в соответствии со своими предпочтениями, но она пропускает / пропускает / не распознает подразделы MEGA (синхронизированные) или MEGA (синхронизация) из-за того, что я считаю скобками. Как это можно исправить?
#/usr/bin/python3
import codecs
import os
import winreg as reg
# names of all overlay icons that shall be boosted:
boost = """
Tortoise1Normal
HardLinkMenu
IconOverlayHardLink
IconOverlaySymbolicLink
OneDrive4
OneDrive5
DropboxExt01
DropboxExt02
DropboxExt05
MEGA (Synced) <--- this guy
BoxSyncSynced
GoogleDriveSynced
GoogleDriveSyncing
MEGA (Syncing) <--- this guy
BoxSyncNotSynced
"""
boost = set(boost.split())
backup_filename = 'IconOverlayBackup.reg'
key = (r'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion'
r'\Explorer\ShellIconOverlayIdentifiers')
sub_key = key.split('\\', 1)[1]
def main():
with reg.OpenKey(reg.HKEY_LOCAL_MACHINE, sub_key) as base:
backup = []
names = set()
deletes = []
renames = []
i = 0
while True:
try:
name = reg.EnumKey(base, i)
value = reg.QueryValue(base, name)
except OSError:
break
backup.append((name, value))
core = name.strip()
if core in names:
deletes.append(name)
else:
names.add(core)
if core in boost:
core = ' ' + core
if core != name:
renames.append((name, core))
i += 1
if deletes or renames:
print('Write backup file', backup_filename)
with codecs.open(backup_filename, 'w', 'utf_16_le') as backup_file:
wr = backup_file.write
wr('\ufeff')
wr('Windows Registry Editor Version 5.00\r\n\r\n')
wr('[{}]\r\n\r\n'.format(key))
for name, value in backup:
wr('[{}\\{}]\r\n'.format(key, name))
wr('@="{}"\r\n\r\n'.format(value))
for name in deletes:
print('Delete', repr(name))
reg.DeleteKey(base, name)
for old_name, new_name in renames:
print('Rename', repr(old_name), 'to', repr(new_name))
value = reg.QueryValue(base, old_name)
reg.CreateKey(base, new_name)
reg.SetValue(base, new_name, reg.REG_SZ, value)
reg.DeleteKey(base, old_name)
print('Restart Windows Explorer')
if not os.system('taskkill /F /IM explorer.exe'):
os.system('start explorer.exe')
else:
print('Nothing to rename')
if __name__ == '__main__':
main()