Sign In | Register Now About Bytes | Help | Site Map
Connecting Tech Pros Worldwide
View Single Post
Logan's Avatar
Logan
Guest
n/a Posts
July 21st, 2005
08:45 PM
#2

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]