[Tutor] Recursive functions and the windows registry

Todd Dahl lucidmonk at gmail.com
Thu Nov 16 17:49:55 CET 2006

I have been fighting with this for a couple of days and am getting
frustrated with it. I am trying to figure out a way to walk through the
windows registry and to capture all nodes under the HKEY_CLASSES_ROOT\CLSID
key and then put it into a list.

I have been trying to do it with a recursive function but am having no luck
with it. I am really hoping that it's because I am new to Python and not
because I am doing something stupid but it would not be the first time I
missed something obvious.

This script is a subset of the larger script that I am working on.  Any help
or feedback would be great. I'm getting to the end of my rope.

By the way I don't understand why it seems to work inside the
ListRegistryKeys function but it doesn't pass all the information back to
the parseRegistry function.



#!/usr/bin/env python

import _winreg # _winreg module allows you to work with the windows registry

def ListRegistryKeys(path):
    # if its empty do nothing
    if not path: return

    key=_winreg.OpenKey(_winreg.HKEY_CLASSES_ROOT, path)

    name = []

        while 1:
            name.append(path + "\\" + _winreg.EnumKey(key, i))
            print name[-1]
            i += 1
    except WindowsError:

    _winreg.CloseKey( key)

    for item in name:

    return name

def parseRegistry():
    guidlist = ListRegistryKeys("CLSID")

    for item in guidlist:
        print "parseRegistry: ", item

def main():

if __name__=="__main__":
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tutor/attachments/20061116/469c8294/attachment.html 

More information about the Tutor mailing list