从控制手柄获取进程

时间:2013-12-12 18:32:14

标签: c# c++ c windows winapi

我有一个属于系统中另一个进程的控件的句柄 我怎样才能获得它所属的流程?我试过找一个合适的功能,但没找到多少。

1 个答案:

答案 0 :(得分:6)

我认为通过“控制句柄”,你的意思是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
    [...]
}