HANDLE m_hProcessSnap = NULL; HANDLE m_hThreadSnap = NULL; HANDLE m_hProcess = NULL; HANDLE m_hThread = NULL; PROCESSENTRY32 m_pe32; THREADENTRY32 m_te32; memset(&m_pe32,0,sizeof(m_pe32)); m_pe32.dwSize = sizeof(PROCESSENTRY32); memset(&m_te32,0,sizeof(m_te32)); m_te32.dwSize = sizeof(THREADENTRY32); m_hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); m_hThreadSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD,0); WNDENUMPROC lpFun = EnumThreadWndProc; BOOL IsHas = FALSE; if (::Process32First(m_hProcessSnap,&m_pe32)) { do { m_hProcess = ::OpenProcess(PROCESS_ALL_ACCESS,FALSE,m_pe32.th32ProcessID); if (::Thread32First(m_hThreadSnap,&m_te32)) { do { if (m_pe32.th32ProcessID == m_te32.th32OwnerProcessID) { ::EnumThreadWndProc(m_te32.th32ThreadID, lpFun, 0);/*枚举所有线程窗口HWND*/ } } while (::Thread32Next(m_hThreadSnap,&m_te32)); } } while (::Process32Next(m_hProcessSnap,&m_pe32)); } 
|