>>from win32com.client import GetObject
>>
>>HKLM = 0x80000002L
>>objRegi = GetObject("winmgmts://./root/default:StdRegProv")
>>sBaseKey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
>>iRC = objRegi.EnumKey(HKLM, sBaseKey, sKeys)
>>for sKey in arSubKeys:
>> print sKey
In your code sKeys is in fact not initialized prior to passing
it as an argument to EnumKey method of objRegi class. That is
why you are receiving traceback message. Python doesn't know
what value to pass.
Hope info helps.
Regards,
Larry Bates
SysCon, Inc.
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]On Behalf Of
[EMAIL PROTECTED]
Sent: Saturday, August 17, 2002 2:02 PM
To: [EMAIL PROTECTED]
Subject: ActivePython digest, Vol 1 #417 - 1 msg
Send ActivePython mailing list submissions to
[EMAIL PROTECTED]
To subscribe or unsubscribe via the World Wide Web, visit
http://listserv.ActiveState.com/mailman/listinfo/activepython
or, via email, send a message with subject or body 'help' to
[EMAIL PROTECTED]
You can reach the person managing the list at
[EMAIL PROTECTED]
When replying, please edit your Subject line so it is more specific
than "Re: Contents of ActivePython digest..."
Today's Topics:
1. get registry with WMI in Python (Steven Nien)
--__--__--
Message: 1
From: Steven Nien <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
Subject: get registry with WMI in Python
Date: Sat, 17 Aug 2002 22:57:04 +0800
Hi
I find some scripts in Microsoft MSDN. For example:
HostName="localhost"
Dim oRegistry, sBaseKey, iRC, sKey, arSubKeys, sValue
Const HKLM = &H80000002 'HKEY_LOCAL_MACHINE
On Error Resume Next
Set oRegistry = _
GetObject("winmgmts:{ImpersonationLevel=Impersonate}//" & _
HostName & "/root/default:StdRegProv")
If Err <> 0 Then
wscript.echo "Line 9, " & Err.Number & ", " & _
Err.Description
Err.Clear
wscript.quit
End if
sBaseKey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"
iRC = oRegistry.EnumKey(HKLM, sBaseKey, arSubKeys)
If Err <> 0 Then
wscript.echo "Line 23, " & Err.Number & ", " & _
Err.Description
Err.Clear
wscript.quit
End if
For Each sKey In arSubKeys
iRC = oRegistry.GetStringValue(HKLM, sBaseKey & sKey, _
"DisplayName",sValue)
If Err <> 0 Then
wscript.echo "Line 32, " & Err.Number & ", " & _
Err.Description
Err.Clear
wscript.quit
End if
If iRC <> 0 Then
oRegistry.GetStringValue HKLM, sBaseKey & _
sKey, "QuietDisplayName", sValue
If Err <> 0 Then
wscript.echo "Line 42, " & Err.Number & ", " & _
Err.Description
Err.Clear
wscript.quit
End if
End If
If sValue <> "" Then
wscript.echo sValue
End If
Next
After run the script, I can get Uninstall software list in registry.
I try to do it with Python. The code is:
from win32com.client import GetObject
HKLM = 0x80000002L
objRegi = GetObject("winmgmts://./root/default:StdRegProv")
sBaseKey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
iRC = objRegi.EnumKey(HKLM, sBaseKey, sKeys)
for sKey in arSubKeys:
print sKey
After run the code, I get some error message:
Traceback (most recent call last):
File "D:\steven\itim\t2.py", line 6, in ?
iRC = objRegi.EnumKey(HKLM, sBaseKey, sKeys)
NameError: name 'sKeys' is not defined
I don't know why. Could someone give me a hint?
Thanks very much.
--
Steven Nien
--__--__--
_______________________________________________
ActivePython mailing list
[EMAIL PROTECTED]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
End of ActivePython Digest
_______________________________________________
ActivePython mailing list
[EMAIL PROTECTED]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
Other options: http://listserv.ActiveState.com/mailman/listinfo/ActivePython