[python-win32] Re: list of child processes from pywin32

Roger Upole rwupole at msn.com
Wed Mar 1 06:03:08 CET 2006


> Is there a way to get a list of all children of a process via pywin32?
> 
> These would be all processes launched from calls like popen(), system() 
> and QProcess().
> 
> Alternatively, is there a way to get the total CPU time (user and 
> kernel) of all children of a python session?
> Note that os.times() does not work on Windows and on Linux it only post 
> the children time when the children exit.

You can do this with WMI:

import win32com.client
wmi=win32com.client.GetObject('winmgmts:')
for p in wmi.InstancesOf('win32_process'):
    print p.Name, p.Properties_('ProcessId'), \
        int(p.Properties_('UserModeTime').Value)+int(p.Properties_('KernelModeTime').Value)
    children=wmi.ExecQuery('Select * from win32_process where ParentProcessId=%s' %p.Properties_('ProcessId'))
    for child in children:
        print '\t',child.Name,child.Properties_('ProcessId'), \
            int(child.Properties_('UserModeTime').Value)+int(child.Properties_('KernelModeTime').Value)
        
     hth
        Roger



More information about the Python-win32 mailing list