Hi,
Can anyone shed any light on how i can get the path of a task/process
that is running if i have a handle to its top-level window? Please!
I don't know where to start...
HYCH,
James.
William DePalo [MVP VC++] - 02 Jan 2007 23:16 GMT
> Can anyone shed any light on how i can get the path of a task/process
> that is running if i have a handle to its top-level window? Please!
On XP and 2K+3
GetWindowThreadProcessId() will map a window handle to a process
identifier.
OpenProcess() will map a process id to a process handle.
GetProcessImageFileName() will map the handle to the path.
On any platform:
GetWindowThreadProcessId() yields a process id as above
CreateToolhelp32Snapshot() gets a list of processes
Process32First() and Process32Next() walks the list - you want the one
whose id matches.
Don't forget to clean up - close whatever handles you open.
Also note that the data you get can go stale - that is the window can be
closed or the process can exit as you are gathering the data.
Regards,
Will
Mattias Sjögren - 03 Jan 2007 06:37 GMT
>Can anyone shed any light on how i can get the path of a task/process
>that is running if i have a handle to its top-level window? Please!
There's also the GetWindowModuleFileName API.
Mattias

Signature
Mattias Sjögren [C# MVP] mattias @ mvps.org
http://www.msjogren.net/dotnet/ | http://www.dotnetinterop.com
Please reply only to the newsgroup.