根据进程id获取主窗口句柄

来源:互联网 发布:linux打开隐藏文件 编辑:程序博客网 时间:2024/05/18 00:35
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;}