2

Pythonのライブラリを使用してwinregAdob​​e 製品 (Photoshop、After Effects など) のレジストリ キーにアクセスしようとしています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 BridgeAdobe AcrobatAfter EffectsPhotoshopなど

編集: 現在 32 ビット Python を実行しています。

4

1 に答える 1

2

コメントからの@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

助けてくれてありがとう!

于 2020-04-15T20:44:00.303 に答える