根據程序id獲取主視窗控制代碼
阿新 • • 發佈:2019-01-28
struct ProcessWindowData { HWND hWnd; unsigned long lProcessId; }; BOOL CALLBACK EnumWindowCallback(HWND hWnd, LPARAM lParam) { ProcessWindowData& wndData = *(ProcessWindowData*)lParam; unsigned long lProcessId = 0; ::GetWindowThreadProcessId(hWnd, &lProcessId); if ((wndData.lProcessId != lProcessId) || (::GetWindow(hWnd, GW_OWNER) != (HWND)0) || !::IsWindowVisible(hWnd)) { return 1; } wndData.hWnd = hWnd; return 0; } HWND GetMainWindowHwnd(unsigned long lProcessId) { ProcessWindowData wndData; wndData.hWnd = 0; wndData.lProcessId = lProcessId; ::EnumWindows(EnumWindowCallback, (LPARAM)&wndData); return wndData.hWnd; }