Find process id by window's handle

You can use the following Windows API:

[DllImport("user32.dll", SetLastError=true)]
static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint processId);

You pass in the HWND and use the out parameter to return the PID.

You can read more on this function here on MSDN.


You will need to use P/invoke with the Windows API.

Declare a function in your class like

 [DllImport("User32.dll")]
 static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint lpdwProcessId);

and then call it in your class.

See PInvoke.

Tags:

C#