On May 7, 9:19 am, Tim Golden <[EMAIL PROTECTED]> wrote: > Mike Driscoll wrote: > > On May 7, 4:45 am, Tim Golden <[EMAIL PROTECTED]> wrote: > >> In a spirit of being helpful... :) > > [... snip registry walker ...] > > > This is pretty cool stuff, Tim. Of course, it would also seriously > > screw up some programs if you decided to replace the wrong phrase. > > Just a word of warning to the OP: be sure to make a backup of the > > registry before doing something like this. Trying to fix a messed up > > registry from the command line is not a fun way to spend the > > afternoon. > > Good point, Mike. In a spirit of being even more helpful... the _winreg > module includes the functions SaveKey and LoadKey so as a crude > backup mechanism, you could do this: > > <code snippet> > import time > import _winreg > import win32api > import win32security > > # > # You need to have SeBackupPrivilege enabled for this to work > # > priv_flags = win32security.TOKEN_ADJUST_PRIVILEGES | win32security.TOKEN_QUERY > hToken = win32security.OpenProcessToken (win32api.GetCurrentProcess (), > priv_flags) > privilege_id = win32security.LookupPrivilegeValue (None, "SeBackupPrivilege") > win32security.AdjustTokenPrivileges (hToken, 0, [(privilege_id, > win32security.SE_PRIVILEGE_ENABLED)]) > > root = _winreg.OpenKey (_winreg.HKEY_LOCAL_MACHINE, r"Software\Python\TEST") > # > # This will fail if the file already exists so make it uniqueish > # > _winreg.SaveKey (root, "c:/temp/HKLM_Software_Python-%s.reg" % time.strftime > ("%Y%m%d-%H%M%S")) > > </code snippet> > > Note that the file which this creates is *not* the same as a .reg file which > the File > Export menu > option provides from within the registry editor. (In fact, I shouldn't really > have called it .reg; call > it something else). It can be reloaded by the _winreg.LoadKey function -- > which I notice is incorrectly > named RegLoadKey in the docs after the underlying API call. The docs note > that SeRestorePrivilege is > required for this action, the counterpart to SeBackupPrivilege. > > TJG
Wow! Talk about going above and beyond the call of tutoring! I still don't know how you found out how to do all these neat Windows tricks, but I'll be filing them away for future reference. Mike -- http://mail.python.org/mailman/listinfo/python-list