2013-12-12 116 views
2

我有一個屬於系統中另一個進程的控件的句柄。
我怎樣才能得到它所屬的過程?我試過尋找一個合適的功能,但沒有發現太多。從控制手柄獲取進程

+0

這聽起來像一個XY問題。一旦找出它屬於哪個過程,你會怎麼做? –

回答

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 
    [...] 
}