枚举系统所有进程和进程所有线程(比如:获得线程窗口)

王朝vc·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

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));

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航