File: show_python_registry.py

package info (click to toggle)
pysvn 1.9.22-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 7,212 kB
  • sloc: cpp: 20,327; python: 5,485; sh: 869; javascript: 57; makefile: 56; ansic: 52
file content (32 lines) | stat: -rw-r--r-- 1,428 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/usr/bin/env python3
import sys
import winreg

def main( argv ):
    for arch, view in [('Win32', winreg.KEY_WOW64_32KEY), ('Win64', winreg.KEY_WOW64_64KEY)]:
        for level, key in [('HKLM', winreg.HKEY_LOCAL_MACHINE), ('HKCU', winreg.HKEY_CURRENT_USER)]:
            # look for python in the registry
            try:
                for vendor_key in (r'SOFTWARE\Python\PythonCore', r'SOFTWARE\Python\ContinuumAnalytics'):
                    core_key = winreg.OpenKey( key, vendor_key, 0, winreg.KEY_READ | view )
                    try:
                        index = 0
                        while True:
                            py_name = winreg.EnumKey( core_key, index )
                            py_key = winreg.OpenKey( core_key, py_name, 0, winreg.KEY_READ | view )
                            install_key = winreg.OpenKey( py_key, 'InstallPath', 0, winreg.KEY_READ | view )
                            install_path, value_type = winreg.QueryValueEx( install_key, None )
                            print( arch, py_name, install_path )

                            index += 1

                    except WindowsError:
                        pass

                    winreg.CloseKey( core_key )

            except WindowsError:
                print( '%s not found in %s for %s' % (vendor_key, level, arch) )

if __name__ == '__main__':
    sys.exit( main( sys.argv ) )