Python on Win32 and MFC

Mark S Pryor marks.pryorSHRUB at CHENEYverizon.net
Fri Oct 3 18:02:01 EDT 2003


"Gilles Lenfant" <glenfant at NOSPAM.bigfoot.com> wrote in message
news:blkolg$ksv$1 at biggoron.nerim.net...
> Hi,
>
> I bought and read most of (excellent) Mark Hammond's book, Python
> programming on Win32.
> I started to make some sophisticated "hello world" app using win32ui (...)
> but I need some more information to make the bridge between this book and
> the MFC (black hole for me) in depth.
>
> Any advise on good reading, and some python examples ?
>
> Many thanks in advance.
>
> --Gilles
>

here's an example showing how to use the Registry API in
ActivePython.

I have other scripts that enum windows, use Menu objects, and do
IPC using SendMessage.

hth,
Mark Pryor

####### begin script ############
#!/usr/bin/python
'''
    author: mark pryor
    keywords: registry enum license typelib
    description: scriptlet to enum a subkey collection
    date: 11/8/02 3:03PM
'''

import os, sys
import win32api as wi
import win32con as wc
import string as st
#exercise to enumerate a subkey collection


# try this for the Licenses key, then the TypeLib key
kName = "Licenses"
kName = "TypeLib"

# get a handle
pyk = wi.RegOpenKey( wc.HKEY_CLASSES_ROOT, kName)

# get key info, num1 has the key count
( num1, vals, works) = wi.RegQueryInfoKey( pyk )
print num1, vals, works
nt = 0
guid = wi.RegEnumKey( pyk, nt )
nt = nt + 1
#
done = 0
for nt in range(num1):
    guid = wi.RegEnumKey( pyk, nt)
    svers = ''
    if kName == "TypeLib":
        '''
         for TypeLibs we need to step down to the version key and
         read the help string (default value)
        '''
        pyj = wi.RegOpenKey( wc.HKEY_CLASSES_ROOT, os.path.join(kName,
guid) )
        (num2, val2, work2) = wi.RegQueryInfoKey(pyj)

        if num2 > 0:
            # we are ingnoring multi versions, like Ado (2.1, 2.5, 2.7, etc)
            svers = wi.RegEnumKey( pyj, 0)
            valkey = wi.RegQueryValue( pyj, svers)

    else:
        valkey = wi.RegQueryValue( pyk, guid)

    print guid, svers, valkey
    nt = nt + 1

pyk.Close()
sys.exit()






More information about the Python-list mailing list