Help! Recursing Registry!
SunitJoshi
SunitJoshi at email.msn.com
Mon May 31 11:40:05 EDT 1999
Hi All
I'm trying to recurse through registry keys and I'm able to get the key
values, however I can't seem to record the key path, e.g.: if it's under
HKEY_LOCAL_MACHINE\SOFTWARE\\Microsoft\Visual Basic\6.0\External Tools, I
can print the values under this key like HTML Editor=C:\windows\notepad.exe.
but I have trouble recording the whole path.
I guess I'm missing something here, if someone could please point it out
I would really appreciate it.
Code follows:
import win32ui, win32api
import win32con
commonString = "SOFTWARE\\Microsoft"
def
makeRootKey(Key=win32con.HKEY_LCAL_MACHINE,keyString="SOFTWARE\\Microsoft\\"
, mode=win32con.KEY_READ):
return win32api.RegOpenKeyEx(key, keyString, 0, mode)
def dumpKeys():
key = makeRootKey() # This just returns the key to
#
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft
searchKeys(key, "SOFTWARE\\Miscrosoft")
def searchKeys(Instance, object):
global commonString
key = makeRootKey(Key=Instance, keyString=object)
if not key==None:
dumpValues(key, object)
keys = []
keyNo=0
while 1:
try:
keyName = win32api.RegEnumKey(key, keyNo)
keys.append(keyName)
keyNo = keyNo + 1
except win32api.error:
if len(keys) == 0:
return
else:
break
savedKeys = keys[:]
for name in savedKeys:
subKey = name
commonString = commonString + "\\" + subKey
searchKey(key,subKey)
win32api.RegCloseKey(key)
def dumpValues(key, subKey):
global commonString
keyNo=0
while 1:
try:
(Name,Data,Type) = win32api.RegEnumValue(key, keyNo)
print "Key>%s\n" %commonString
print "-" * (len("Key>") + len(commonString))
keyNo = keyNo + 1
except win32api.error:
print "\n"
return
More information about the Python-list
mailing list