[Tutor] _winreg problems enumerating

Liam Clarke cyresse at gmail.com
Thu Apr 14 03:44:46 CEST 2005


Hi Tim, 

Hmmm, I may have to play with _winreg, is is new with Python 2.4?

Anyway, from the _winreg docs - 

 *EnumValue*( key, index) Enumerates values of an open registry key, 
returning a tuple. 

key is an already open key, or any one of the predefined HKEY_* constants. 

index is an integer that identifies the index of the value to retrieve. 

The function retrieves the name of one subkey each time it is called. It is 
typically called repeatedly, until an EnvironmentError exception is raised, 
indicating no more values.
 

There's your issue - 
E_key = 
_winreg.EnumValue(key,r"SOFTWARE\Microsoft\Windows\CurrentVersion\Run")
 
The second value needs to be an integer that is an index.
 
Typical usage would look like this - 
 i = 0
regKeys = []
try:
while 1:
regKeys.append(_winreg.EnumValue(key, i))
i += 1
except EnvironmentError:
pass


Good luck, 

Liam Clarke

 

On 4/14/05, Gallagher Timothy-TIMOTHYG <TIMOTHYG at motorola.com> wrote:
> 
> am new to python and want to learn this language. I am having troubles
> finding examples and tutorials for use on windows boxes. I do most of my
> stuff in perl and php but want better socket support, so I am giving 
> python
> a try. I am writing a script to connect to remote registry's because of
> this new IM virus. I can create reg entries and delete them but I cannot
> enumerate them, here is my code.
> 
> import _winreg
> 
> host = "127.0.0.1 <http://127.0.0.1>" # local host
> key = _winreg.ConnectRegistry(host, _winreg.HKEY_LOCAL_MACHINE)
> E_key = _winreg.EnumValue(key,
> r"SOFTWARE\Microsoft\Windows\CurrentVersion\Run")
> 
> I get an error when I run the script:
> 
> Traceback (most recent call last):
> File "reg4.py", line 9, in ?
> E_key = _winreg.EnumValue(key,
> r"SOFTWARE\Microsoft\Windows\CurrentVersion\R
> un")
> TypeError: an integer is required
> 
> Can someone tell me what I am doing wrong???
> 
> Thanks
> 
> Timothy F. Gallagher
> Timothyg- at -Motorola.com <http://Motorola.com>
> 
> _______________________________________________
> Tutor maillist - Tutor at python.org
> http://mail.python.org/mailman/listinfo/tutor
> 



-- 
'There is only one basic human right, and that is to do as you damn well 
please.
And with it comes the only basic human duty, to take the consequences.'
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tutor/attachments/20050414/c50361a3/attachment.html


More information about the Tutor mailing list