如题目
谢谢
谢谢
解决方案 »
- ontimer 不能使用继承类
- 插入flash 控件问题
- 我创建了一个线程packet,为什么在其他类中向他发送线程消息,却接收不到,但第一个消息怎么发都收得到,第二个消息死活也收不到
- VC2005的窗体设计器问题
- 请教一个比较极端的节点排序算法
- 在Dialog的PropertySheet中,在程序运行中,如果通过点击事件添加一个PropertyPage页?
- OWNER_DRAW 组合框问题,请帮忙。
- 求救!通过ODBC访问Access的错误,
- 求救!VC资源问题!
- 解释一个名词
- IE编程问题--IHTMLElementCollection接口的item方法的使用
- 对一个小数取整进位是什么函数
PROCESSENTRY32 pe;
pe.dwSize = sizeof( pe );
BOOL bNext = Process32First( hSnap, &pe );
while ( bNext )
{
//pe 就是你要的
bNext = Process32Next( hSnap, &pe );
}
CloseHandle( hSnap );
2)CreateToolhelp32Snapshot、Process32First、Process32Next联合使用
要例子我有
//-------------------------------------------------------------------
PROCESSENTRY32 pe;
DWORD id = 0;
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
pe.dwSize = sizeof(PROCESSENTRY32);
if( !Process32First(hSnapshot,&pe) )
return 0;
do
{
pe.dwSize = sizeof(PROCESSENTRY32);
if( Process32Next(hSnapshot,&pe)==FALSE )
break;
pe.szExeFile;//就是进程名字 ,加入数组或者列表框处理
} while(1);
//-------------------------------------------------------------------//-------------------------------------------------------------------
HANDLE m_Sys = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(m_Sys == NULL)
{
len = 0;
m_Command = GET_PROCESS_LIST_ERR;
return;
}
PROCESSENTRY32 m_Lppe = {0};
m_Lppe.dwSize = sizeof(PROCESSENTRY32);
if(!Process32First(m_Sys,&m_Lppe))
{
len = 0;
m_Command = GET_PROCESS_LIST_ERR;
CloseHandle(m_Sys);
return;
}
CFile m_File;
if(!m_File.Open(m_TmpFileName,CFile::modeCreate|CFile::modeReadWrite))
{
len = 0;
m_Command = CAN_NOT_CREATE_TMP_FILE;
return;
}
PROCESSLIST m_ProcessList = {0};
m_ProcessList.cntThreads = m_Lppe.cntThreads;
m_ProcessList.pcPriClassBase = m_Lppe.pcPriClassBase;
m_ProcessList.th32ProcessID = m_Lppe.th32ProcessID;
strcpy(m_ProcessList.szExeFile,m_Lppe.szExeFile);
m_File.Write(&m_ProcessList,sizeof(PROCESSLIST));
while(Process32Next(m_Sys,&m_Lppe))
{
m_ProcessList.cntThreads = m_Lppe.cntThreads;
m_ProcessList.pcPriClassBase = m_Lppe.pcPriClassBase;
m_ProcessList.th32ProcessID = m_Lppe.th32ProcessID;
strcpy(m_ProcessList.szExeFile,m_Lppe.szExeFile);
m_File.Write(&m_ProcessList,sizeof(PROCESSLIST));
}
CloseHandle(m_Sys);
DWORD m_FileLen = m_File.GetLength();
if(m_FileLen == 0)
{
len = 0;
m_Command = 0;
m_File.Close();
return;
}
m_File.Close();
*((DWORD*) m_TransData) = m_FileLen;
len = sizeof(DWORD);
m_Command = 0;
//-------------------------------------------------------------------
http://www.vckbase.com/document/viewdoc.asp?id=508