从控制手柄获取进程

Get process from control handle

本文关键字:获取 取进程 控制      更新时间:2023-10-16

我有一个属于系统中另一个进程的控件的句柄
如何获取它所属的流程?我试着查找一个合适的函数,但没有找到太多。

我认为"控制柄"指的是HWND。

然后,使用GetWindowThreadProcessId

HWND hWndToSomeControl;
[...]
DWORD dwPid;
GetWindowThreadProcessId( hWndToSomeControl, &dwPid );

编辑:错误控制(在Windows 7上测试):

HWND hWndToSomeControl;
[...]
DWORD dwPid;
DWORD dwTid = GetWindowThreadProcessId( hWndToSomeControl, &dwPid );
if ( dwTid == 0 ) {
    DWORD dwLE = GetLastError(); // may be 1400 ERROR_INVALID_WINDOW_HANDLE
    [...]
}