Как заставить winreg Python видеть записи в реестре, которые видны в редакторе реестра для программ Adobe CC? - PullRequest
1 голос
/ 15 апреля 2020

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

Вот скриншот, на котором обобщены результаты на данный момент

Код I ' Я бегу, чтобы увидеть это:

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, et c.

Редактировать: я работаю 32-битный Python в настоящее время.

1 Ответ

1 голос
/ 15 апреля 2020

@ Мартино из комментариев попал прямо в голову! Мне нужно было изменить ключ доступа, чтобы можно было найти 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

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

...