_winreg problem
Brad Tilley
bradtilley at usa.net
Thu Oct 7 17:35:47 EDT 2004
Brad Tilley wrote:
> The below function fails with this error:
> ValueError: Could not convert the data to the specified type.
>
> The problem appears to be the v variable. When I make v an int, I get:
> WindowsError: [Error 5] Access is denied. This makes sense to me as the
> _winreg docs says that value (v) in SetvalueEx should be a string, but I
> do not understand why it gives the "ValueError" error when I make it a
> string. Also, I can do one key (Log) at a time, but not iterate over all
> of them like I'd like to do. I've checked it with print statements...
> every thing looks right.
>
> Any suggestions?
>
> def log_limits(): ## 18
> ## For winXP SP2 & Python 2.3.4
> ## set log limits on EventLogs, keep guests out of logs and set them
> to overwrite as needed.
> logs = ['Application', 'Security', 'System']
> vals = {'Retention':'0', 'MaxSize':'10223616',
> 'RestrictGuestAccess':'1'}
> for l in logs:
> x = r"SYSTEM\CurrentControlSet\Services\Eventlog\%s" % l
> ## This print shows I'm iterating of the logs correctly.
> print x
> key = OpenKey(HKEY_LOCAL_MACHINE, x)
> for n,v in vals.iteritems():
> ## This print shows I'm associating the value pairs with
> each Log
> print n,v
> ## Here is where the failure occurs... the v at the end:
> SetValueEx(key,n,0,REG_DWORD,v)
> CloseKey(key)
I figured it out. I'm using _winreg.OpenKey() as if it were
_winreg.CreateKey() and when one does that things don't work... it's
been a long day!
OpenKey(HKEY_LOCAL_MACHINE, x, 0, KEY_ALL_ACCESS)
CreateKey(HKEY_LOCAL_MACHINE, x)
More information about the Python-list
mailing list