[python-win32] Setting UserInitials in Office

Mike Driscoll mdriscoll at co.marshall.ia.us
Wed Apr 28 15:23:36 CEST 2010


On 1:59 PM, Tim Golden wrote:
> On 27/04/2010 22:43, Tim Roberts wrote:
>> Tim Golden wrote:
>>> On 26/04/2010 23:56, Tim Roberts wrote:
>>>> Mike Driscoll wrote:
>>>>> ...
>>>>> HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Common\UserInfo
>>>>>
>>>>> I tried to use the base64 module to decode it, but I must be doing
>>>>> something wrong. Does anyone know of a good way to get and set this
>>>>> information? I am dealing with users on Windows XP and Python 2.4
>>>>
>>>> ???  The strings in there are not encoded in any way.  They are
>>>> plaintext Unicode strings.  They happen to be identified as 
>>>> REG_BINARY,
>>>> but that's just a silly accident.
>>>
>>> On my (WinXP SP3, Office 2003) machine, they look to be utf16-encoded
>>> strings (null-terminated):
>>
>> Exactly.  They are really just REG_SZ, although they set the type as
>> REG_BINARY for their own inscrutable reasons.
>>
>
> Ah. Amazing how I managed to read your explanation and then internally
> translate it into meaning something rather different.
>
> Hopefully my code will have helped the OP out at any rate... I seem to be
> having a bad week for offering help :)
>
> TJG
>

Sorry for the delay in checking this out. I was out of the office 
yesterday. Your code almost worked for reading the key, but I get a 
tuple back:

('m\x00l\x00d\x00\x00\x00', 3)

So I had to change your last line to: print repr (res[0].decode ("utf16"))

I'll try setting the value later today since that's the main goal of 
this little project. I suppose I'll need to encode it in utf16 too. 
Thanks for the assist!

- Mike


More information about the python-win32 mailing list