GetWindowThreadProcessId

C# Signature:

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

// When you don't want the ProcessId, use this overload and pass IntPtr.Zero for the second parameter
[DllImport("user32.dll")]
static extern uint GetWindowThreadProcessId(IntPtr hWnd, IntPtr ProcessId);

VB.Net Signature:

<DllImport("user32.dll", SetLastError:=True)> _
Private Shared Function GetWindowThreadProcessId(ByVal hwnd As IntPtr, _
                          ByRef lpdwProcessId As Integer) As Integer
End Function

VB.Net Signature:

''' <summary>
    ''' Retrieves the identifier of the thread that created the specified window and, optionally, the identifier of the process that created the window. 
    ''' </summary>
    ''' <param name="hwnd">A handle to the window. </param>
    ''' <param name="lpdwProcessId">A pointer to a variable that receives the process identifier. If this parameter is not NULL, GetWindowThreadProcessId copies the identifier of the process to the variable; otherwise, it does not. </param>
    ''' <returns>The return value is the identifier of the thread that created the window. </returns>
    ''' <remarks>http://msdn.microsoft.com/en-us/library/ms633522%28v=vs.85%29.aspx</remarks>
    Private Declare Auto Function GetWindowThreadProcessId Lib "user32.dll" (ByVal hwnd As IntPtr, _
                  ByRef lpdwProcessId As Integer) As Integer

Sample Code (VB):

Sample Code (VB):

Sample Code (C#):

Sample Code (C#):

Última actualización