You should consider using the new subprocess module.  It provides both
phandle and pid.  You can confirm this using EnumWindows and
win32process.GetWindowThreadProcessId.  The value returned by .pid is
the same as that from GetWindowThreadProcessId.  ._handle is the same as
that returned by spawnv, l, whatever.

process = subprocess.Popen(["c:\\windows\\notepad.exe",'','']) 
print process.pid
print int(process._handle)

Bobby

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of
Mark Hammond
Sent: Thursday, October 12, 2006 4:19 AM
To: 'Scott Hogsten'; python-win32@python.org
Subject: Re: [python-win32] How to get PID from a Proces Handle ?

> I have some code that spawns processes using the "spawnv"
> command this returns a process handle.
> Can I use the process handle to retrieve the actual PID of
> the process ? This is part of a test harness
> and I need to be able have the actual PID to use against some output.

Good question!  It's not immediately obvious how to do this simply, but
at a
pinch, maybe win32pdh or WMI could be used?

Other (more painful) option is to use CreateProcess to spawn your
process.
The best Python implemented example of how to do this I know of is at
http://svn.zope.org/*checkout*/Zope/trunk/lib/python/nt_svcutils/service
.py?
content-type=text%2Fplain - the main advantage is that you can redirect
the
output any place you like.

Hope that helps.

Mark

_______________________________________________
Python-win32 mailing list
Python-win32@python.org
http://mail.python.org/mailman/listinfo/python-win32
_______________________________________________
Python-win32 mailing list
Python-win32@python.org
http://mail.python.org/mailman/listinfo/python-win32

Reply via email to