Connecting Tech Pros Worldwide Help | Site Map

Get Executable name from Window Handle

Logan
Guest
 
Posts: n/a
#1: Jul 21 '05
I need to get the executable name for window under the cursor. I feel like
my code is pretty close but the i never find a process.Handle that matches
the handle under my mouse.

here is my code:
public object ParentExecutable(IntPtr hWndUnderMouse)
{
object p = null;
System.Diagnostics.Process[] allProcesses =
System.Diagnostics.Process.GetProcesses();
for(int iii = 0; iii < allProcesses.Length; iii++)
{
try
{
if(((System.Diagnostics.Process)allProcesses[iii]).Handle ==
hWndUnderMouse)
{
p = ((System.Diagnostics.Process)allProcesses[iii]);
iii = allProcesses.Length;
}
}
catch{}
}
return p;
}
Thanks in advance for any help,
~Logan


Logan
Guest
 
Posts: n/a
#2: Jul 21 '05

re: Get Executable name from Window Handle


I figured out what i needed to do. here is the new code


[DllImport("user32")]
public extern static int GetWindowThreadProcessId(
int hwnd,
ref int lpdwProcessId);
public object ParentExecutable(IntPtr hWnd)
{
object p = null;
int id = 0;
int i = UnManagedMethods.GetWindowThreadProcessId(hWnd.ToI nt32(),ref id);

System.Diagnostics.Process[] allProcesses =
System.Diagnostics.Process.GetProcesses();
for(int iii = 0; iii < allProcesses.Length; iii++)
{
try
{
if(((System.Diagnostics.Process)allProcesses[iii]).Id == id)
{
p = ((System.Diagnostics.Process)allProcesses[iii]);
iii = allProcesses.Length;
}
}
catch{}
}
return p;
}


"Logan" <logan@globalweb.net> wrote in message
news:uk2JRC9AFHA.3708@TK2MSFTNGP14.phx.gbl...[color=blue]
>I need to get the executable name for window under the cursor. I feel like
>my code is pretty close but the i never find a process.Handle that matches
>the handle under my mouse.
>
> here is my code:
> public object ParentExecutable(IntPtr hWndUnderMouse)
> {
> object p = null;
> System.Diagnostics.Process[] allProcesses =
> System.Diagnostics.Process.GetProcesses();
> for(int iii = 0; iii < allProcesses.Length; iii++)
> {
> try
> {
> if(((System.Diagnostics.Process)allProcesses[iii]).Handle ==
> hWndUnderMouse)
> {
> p = ((System.Diagnostics.Process)allProcesses[iii]);
> iii = allProcesses.Length;
> }
> }
> catch{}
> }
> return p;
> }
> Thanks in advance for any help,
> ~Logan
>
>[/color]


Mattias Sjögren
Guest
 
Posts: n/a
#3: Jul 21 '05

re: Get Executable name from Window Handle


>I need to get the executable name for window under the cursor.

There's a Win32 API function GetWindowModuleFileName that does this.

[color=blue]
>I feel like
>my code is pretty close but the i never find a process.Handle that matches
>the handle under my mouse.[/color]

That's because window handles and process handles are different
things.



Mattias

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