Как заставить Winreg Python видеть записи в реестре, которые видны в редакторе реестра для программ Adobe CC?

Я пытаюсь использовать winreg библиотека python для доступа к ключам реестра для продуктов Adobe (Photoshop, After Effects, Ect.), и пока я могу видеть HKEY_LOCAL_MACHINEподключи в редакторе реестра, Python не может видеть те же ключи. Есть ли разрешение, которое нужно изменить, или я неправильно подхожу к этому?

Вот шапка экрана, подводящая итоги на данный момент.

Код, который я использую, чтобы увидеть это:

import winreg
i=0
while True:
    try:
        # self.aeKey = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, "SOFTWARE\\Adobe\\After Effects\\16.0")
        key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, r"SOFTWARE\Adobe\Setup\Reader")

        printTest = winreg.EnumKey(key, i)
        print(printTest)
        i+=1
    except WindowsError:
        break

В результате я получаю возвращение

Acrobat Distiller
Acrobat PDFMaker
Adobe AIR
Adobe ARM
CommonFiles
ExtendScript Toolkit
ExtensionManager
PDF Admin Settings
Registration
Repair
Setup

Но нет

Adobe Bridge, Adobe Acrobat, After Effects, Photoshop, так далее.

Изменить: в настоящее время я использую 32-разрядный Python.

1 ответ

@martineau из комментариев попал прямо в голову! Мне нужно было изменить ключ доступа, чтобы можно было найти 64-битные реестры.

import winreg
i=0
while True:
    try:
        # self.aeKey = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, "SOFTWARE\\Adobe\\After Effects\\16.0")
        key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, r"SOFTWARE\Adobe",0, winreg.KEY_READ | winreg.KEY_WOW64_64KEY)
        assert key != None, "Key = None"
        printTest = winreg.EnumKey(key, i)
        print(printTest)
        i+=1
    except WindowsError:
        break

Сейчас производит

Acrobat Distiller
Acrobat PDFMaker
Adobe Acrobat
Adobe Bridge
After Effects
Animate
Character Animator
CommonFiles
Dreamweaver 2020
Dreamweaver CC 2019
Identity
Licensing
Photoshop
Prelude
Premiere Pro

Спасибо за помощь!

Другие вопросы по тегам