首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让Python的winreg看到注册表中的条目,这些条目在Adobe CC程序的注册表编辑器中可见?

如何让Python的winreg看到注册表中的条目,这些条目在Adobe CC程序的注册表编辑器中可见?
EN

Stack Overflow用户
提问于 2020-04-16 02:18:33
回答 1查看 413关注 0票数 2

我正在尝试使用python的winreg库来访问Adobe产品的注册表项(Photoshop、After Effects等),虽然我可以在注册表编辑器中看到HKEY_LOCAL_MACHINE子项,但Python似乎看不到相同的注册表项。是否存在需要更改的权限,或者我是否以错误的方式处理此问题?

Here is a Screen cap summarizing the results so far

我运行的代码是:

代码语言:javascript
复制
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

这会导致我返回到

代码语言:javascript
复制
Acrobat Distiller
Acrobat PDFMaker
Adobe AIR
Adobe ARM
CommonFiles
ExtendScript Toolkit
ExtensionManager
PDF Admin Settings
Registration
Repair
Setup

但不是

Adobe BridgeAdobe AcrobatAfter EffectsPhotoshop等。

编辑:我目前运行的是32位的Python。

EN

回答 1

Stack Overflow用户

发布于 2020-04-16 04:44:00

评论中的@martineau一针见血!我需要更改访问密钥,以便能够找到64位注册表。

代码语言:javascript
复制
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

现在生产

代码语言:javascript
复制
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

谢谢你的帮助!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61235839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档