#!/usr/bin/env python # -*- coding: utf-8 -*- import winreg import errno def main(): fold_desc = r'SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions' shell_cmds = [] print(('-' * 5) + ' Registory ' + ('-' * 5)) print(f'Path: HKEY_LOCAL_MACHINE\\{fold_desc}\n') key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, fold_desc, 0, winreg.KEY_READ) for i in range(0, winreg.QueryInfoKey(key)[0]): skey_name = winreg.EnumKey(key, i) skey = winreg.OpenKey(key, skey_name) print(f'Sub key : {skey_name}') try: Name = winreg.QueryValueEx(skey, 'Name')[0] print(f' +- Name: "{Name}"') shell_cmds.append(f'shell:{Name}') except OSError as e: if e.errno == errno.ENOENT: # Name doesn't exist in this skey pass finally: skey.Close() print('\n' + ('-' * 5) + ' Shell Commands ' + ('-' * 5)) shell_cmds.sort() [print(shell_cmd) for shell_cmd in shell_cmds] if __name__ == '__main__': main()