- 1.EnumWindows函数
- 2.GetCurrentProcessId函数
如果获取当前进程窗口句柄,然后再调用窗口下的各类功能函数。 1.EnumWindows函数
原型:BOOL EnumWindows。
该函数枚举所有屏幕上的顶层窗口,并将窗口句柄传送给应用程序定义的回调函数。回调函数返回FALSE将停止枚举,否则EnumWindows函数继续到所有顶层窗口枚举完为止。
功能:获取当前进程一个唯一的标识符。
#includetypedef struct tagWNDINFO { DWORD dwProcessId; HWND hWnd; } WNDINFO, *LPWNDINFO; //枚举窗口过程 static BOOL CALLBACK EnumProc(HWND hWnd, LPARAM lParam) { DWORD dwProcessId; GetWindowThreadProcessId(hWnd, &dwProcessId); LPWNDINFO pInfo = (LPWNDINFO)lParam; if (dwProcessId == pInfo->dwProcessId) { pInfo->hWnd = hWnd; return FALSE; } return TRUE; } //获取主窗口句柄 static HWND GetProcessMainWnd() { DWORD dwProcessId=::GetCurrentProcessId(); WNDINFO wi; wi.dwProcessId = dwProcessId; wi.hWnd = NULL; EnumWindows(EnumProc, (LPARAM)&wi); return wi.hWnd; }



